jjzjj

elementtree

全部标签

python - 如何使用 Python ElementTree 获取元素树的所有子元素?

我想找到一种方法来获取元素树的所有子元素,就像ElementTree.getchildren()那样,因为getchildren()已被弃用从Python2.7版开始。我不想再使用它了,尽管我目前仍然可以使用它。 最佳答案 elem的所有子元素(后代):all_descendants=list(elem.iter())一个更完整的例子:>>>importxml.etree.ElementTreeasET>>>a=ET.Element('a')>>>b=ET.SubElement(a,'b')>>>c=ET.SubElement(a,

python - 保存一个 'lxml.etree._ElementTree' 对象

在过去的几天里,我一直在学习lxml的基础知识;特别是使用lxml.html来解析网站并创建内容的ElementTree。理想情况下,我想保存返回的ElementTree,这样我就可以加载它并进行试验,而不必在每次修改脚本时都解析网站。我以为pickle是可行的方法,但是我现在开始怀疑了。虽然我能够在pickle后检索ElementTree对象......type(myObject)返回对象本身似乎是“空的”,因为我对其进行的后续方法/属性调用都没有产生任何输出。我的猜测是pickle在这里不合适,但有人可以提出替代方案吗?(以防万一,以上内容发生在:python3.2、lxml2.3

python: xml.etree.elementtree.ElemenTtree.write() 声明标签

我使用xml.etree.elementtree.Element创建了一个XML文档,并想使用ElementTree.write()函数打印它但是出来的声明标签是虽然我需要用双引号引起来。有办法改变吗? 最佳答案 我遇到了同样的问题,查看了ElementTree.py的代码,看到了以下内容。对于根标签(单引号):ifmethod=="xml":write("\n"%encoding)对于属性(双引号):write("%s=\"%s\""%(qnames[k],v))它是这样硬编码的...我(在本地)将其更改为:"\n"所以现在每个属

python - 忠实地保留已解析 XML 中的注释

我想在操作XML时尽可能忠实地保留注释。我设法保留了评论,但内容正在被XML转义。#!/usr/bin/envpython#add_host_to_tomcat.pyimportxml.etree.ElementTreeasETfromCommentedTreeBuilderimportCommentedTreeBuilderparser=CommentedTreeBuilder()if__name__=='__main__':filename="/opt/lucee/tomcat/conf/server.xml"#thisistheimportantpart:usethecommen

python - 在 ElementTree 中使用 XPath 按文本查找元素

给定如下XML:AB如何使用ElementTree及其对XPath的支持将元素与内容A匹配?谢谢 最佳答案 据我所知,ElementTree不支持XPath。变了吗?无论如何,你可以使用lxml以及以下XPath表达式:importlxml.etreedoc=lxml.etree.parse('t.xml')printdoc.xpath('//element[text()="A"]')[0].textprintdoc.xpath('//element[text()="A"]')[0].tag结果将是:Aelement

python - cElementtree 和 ElementTree 有什么区别?

对dom略有了解,想了解一下ElementTree。Python2.6的ElementTree实现稍旧,但仍然可用。但是,它看起来像是带有两个不同的类:xml.etree.ElementTree和xml.etree.cElementTree。有人会如此好心地启发我他们的差异吗?谢谢。 最佳答案 它是相同的库(相同的API,相同的功能),但ElementTree是用Python实现的,而cElementTree是用C实现的。如果可以,请使用C实现,因为它针对快速解析和低内存使用进行了优化,并且比Python实现快15-20倍。如果您处

python - cElementtree 和 ElementTree 有什么区别?

对dom略有了解,想了解一下ElementTree。Python2.6的ElementTree实现稍旧,但仍然可用。但是,它看起来像是带有两个不同的类:xml.etree.ElementTree和xml.etree.cElementTree。有人会如此好心地启发我他们的差异吗?谢谢。 最佳答案 它是相同的库(相同的API,相同的功能),但ElementTree是用Python实现的,而cElementTree是用C实现的。如果可以,请使用C实现,因为它针对快速解析和低内存使用进行了优化,并且比Python实现快15-20倍。如果您处

Python:忽略 elementtree.ElementTree 中的 xmlns

有没有办法在elementtree.ElementTree中忽略标记名称中的XML命名空间?我尝试打印所有technicalContact标签:foriteminroot.getiterator(tag='{http://www.example.com}technicalContact'):printitem.tag,item.text我得到类似的东西:{http://www.example.com}technicalContactblah@example.com但我真正想要的是:technicalContactblah@example.com有没有办法只显示后缀(无xmlns),或者

Python:忽略 elementtree.ElementTree 中的 xmlns

有没有办法在elementtree.ElementTree中忽略标记名称中的XML命名空间?我尝试打印所有technicalContact标签:foriteminroot.getiterator(tag='{http://www.example.com}technicalContact'):printitem.tag,item.text我得到类似的东西:{http://www.example.com}technicalContactblah@example.com但我真正想要的是:technicalContactblah@example.com有没有办法只显示后缀(无xmlns),或者

python - 有没有办法从 ElementTree 元素中获取行号

所以我正在使用Python3.2.1的cElementTree解析一些XML文件,在解析过程中我注意到一些标签缺少属性信息。我想知道是否有任何简单的方法可以在xml文件中获取这些元素的行号。 最佳答案 查看文档,我发现没有办法用cElementTree做到这一点。但是我很幸运lxmls版本的XML实现。使用libxml2,它应该几乎是一个替代品。元素有一个sourceline属性。(以及获得许多其他XML功能)。唯一需要注意的是,我只在python2.x中使用过它-不确定它如何/是否在3.x下工作-但可能值得一看。附录:他们在首页上