- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试在 Google App Engine 上使用 pptx-python(创建一个 powerpoint 文件)。我不需要图像,所以我只是注释掉了对 Pillow 的依赖。这给我留下了一些几乎可以工作的东西,除了我有一个版本问题。 GAE中lxml的版本是2.3,显然SubElement方法是在2.3.2版本中添加的。
pptx 代码很好地包装了 lxml 调用,所以看起来我可以通过在应用程序级别重写 SubElement 来解决这个问题。不幸的是,我真的不知道如何做到这一点。而且 lxml 代码似乎只是用 C 语言编写的东西的 python 包装器。所以在我花几天时间来加快 lxml 的速度之前,我希望你们中的一位天才能帮助我。
这是 pptx/oxml/shared.py 中的代码:
def SubElement(parent, nsptag_str, **extra):
"""
Return an lxml element having *nsptag_str*, newly added as a direct child
of *parent*. The new element is appended to the sequence of children, so
this method is not suitable if the child element must be inserted at a
different position in the sequence. The class of the returned element is
the custom element class for its tag, if one is defined. Additional
named parameters defined on lxml ``makeelement()`` are accepted, such as
attrib=attr_dct and e.g. ``visible='1'``.
"""
nsptag = NamespacePrefixedTag(nsptag_str)
return objectify.SubElement(
parent, nsptag.clark_name, nsmap=nsptag.nsmap, **extra
)
谁能告诉我如何重写该函数,使其不依赖于 objectify.SubElement,而是仅使用 lxml 2.3 中可用的方法?
最佳答案
GitHub 上 python-pptx 的开发分支有 SubElement,实际上所有 lxml.objectify 都被移除以支持 lxml.etree 库调用。长话短说,但在大规模使用时,objectify 带来的麻烦远远超过了它的值(value)。
所以如果你可以从 develop 分支安装这个问题可能会消失。 develop 分支与 master 分支一样稳定,此时它们都得到大约 1,000 个单元测试和 175 个集成/验收测试的支持。
这就是我要开始的地方。让我们知道您的进展情况:)
实际上,现在我想到了,虽然我更喜欢上面的方法,因为这意味着你不必固定你的 python-pptx 版本,这可能会成功:
def SubElement(parent, nsptag_str, **extra):
nsptag = NamespacePrefixedTag(nsptag_str)
nsmap = nsptag.nsmap
element = oxml_parser.makeelement(nsptag.clark_name, nsmap=nsmap, **extra)
parent.append(element)
return element
关于python - 我需要一个用于 objectify.SubElement 的 polyfill,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24705582/
在类构造函数中,我需要动态创建一些对象并将它们添加到 vector 中。这是我的代码: ContainerClass::ContainerClass() { for (int i = 0; i
我看过这里的文档: http://docs.python.org/dev/library/xml.etree.elementtree.html#xml.etree.ElementTree.SubEle
我使用以下方法创建了一个 Web 服务: Apache Axis 2 CodeGen 向导 v.1.6.2(绑定(bind):ADB) eclipse 朱诺 Tomcat 7 Java 6 该服务将自
如果我有 { "took": 4, "timed_out": false, "hits": { "total": 14, "max
我正在尝试在 Google App Engine 上使用 pptx-python(创建一个 powerpoint 文件)。我不需要图像,所以我只是注释掉了对 Pillow 的依赖。这给我留下了一些几乎
我使用 PY 的 ElementTree 成功地向元素添加了一个新节点。我现在尝试给它赋予属性,但失败了,尽管我正在按照教程进行操作。 我的示例 xml: # >> here wi
我想在一个 xml 文件中添加一个子元素,但在一个非常具体的位置,而不是附加到末尾。 标准方式是: subi = ET.SubElement(root[0][0], 'subi') 这很好。 但是:假
我有一个 XML 树,我想使用 Elementtree 对其进行解析。我的 XML 看起来像 Success 857 E857_INTL_APIXO_16643800_R1 1
嗨,我正在开发一个 Symfony 项目,我需要 JsTree 结构来表示数据库中的层次结构。我声明 & JsTree 库正确识别的结构。每个它的id=数据库中相应元素的id,我放了一个及其href
我正在使用 KSoap for Android ,但遇到以下问题:当我调用 Web 服务时,收到以下错误消息: SoapFault - faultcode: 'axis2ns5:Client.inpu
我想构建以下 XML 元素(为了自定义数字格式): Figura 1.2 - Description of figure. 但我不知道如何指定文本的位置。事实上,如果我在创建文本之前创建子元素,
我有一个 .NET WCF 服务和一个使用 Axis2 生成服务 stub 的 Java 应用程序。当我向 WCF 中的数据协定添加一个可选 属性并将其排序在属性列表的末尾(这应该是向后兼容的更改)时
背景 我正在使用 Python 2.6、ElementTree 和 SQLite3。我的脚本目前执行以下操作: 连接到数据库以从表/模式中检索信息 将必要的数据添加到 XML 树 输出一个(当前不正确
如果我有以下 xml: 7409 7419 7362 7332 7352 7322 7342 7245 7275 7255 7265 7235 我想要_id和 节点 ui
我正在使用 XmlSerializer。我的类(class): [Serializable] [XmlRoot(ElementName="MyClass")] public class MyClass
我正在使用 Maven 在我的 web 应用程序中预编译 JSP。我使用了相当多的自定义标签,但其中之一阻碍了 Apache 的 JSP 编译器。 JSP 的相关部分是这样的:
我有一个这样的示例 xml 文件: She went didn't go to school. 我想创建一个名为的子元素,并将所有内容放入其中。也就是说,
因此,我使用 ElementTree 创建一个新的子元素,其中新节点的文本应该是一个字典值,如果相应值的字典键等于同一父节点中另一个 XML 节点的文本。 XML 示例:
我是一名优秀的程序员,十分优秀!