使用Python计算XML文档中的标记数
我有一个非常复杂的XML文档,我想解析它。 我的第一步是计算XML文档中使用Python计算XML文档中的标记数,python,xml,parsing,Python,Xml,Parsing,我有一个非常复杂的XML文档,我想解析它。 我的第一步是计算XML文档中标记的数量。 以下是我的XML的简化版本: <file> xmlns="http://www.namespace.co.il" <H Id="1012532" W="2198.05"> ///more tags </H> <H Id="623478" W="3215.05"> ///more tags &l
<file>
xmlns="http://www.namespace.co.il"
<H Id="1012532" W="2198.05">
///more tags
</H>
<H Id="623478" W="3215.05">
///more tags
</H>
etc.
</file>
当我运行此代码时,控制台上不会打印任何内容。
知道为什么吗?我想你的问题已经解决了
zeekay的答案是:
import lxml.etree
doc = lxml.etree.parse(xml)
count = doc.xpath('count(//author)')
(我想,在你的版本中,“author”应该改为“H”)
编辑:
至于您自己的代码(我花了一些时间才找到):
你的循环应该是
for HH in root.iterfind('nmsp:H', ns):
正如所指出的,您需要提供有关名称空间字典的信息,而不仅仅是“nmsp”下的值。我想您的问题已经解决了
zeekay的答案是:
import lxml.etree
doc = lxml.etree.parse(xml)
count = doc.xpath('count(//author)')
(我想,在你的版本中,“author”应该改为“H”)
编辑:
至于您自己的代码(我花了一些时间才找到):
你的循环应该是
for HH in root.iterfind('nmsp:H', ns):
如前所述,您需要提供有关名称空间字典的信息,而不仅仅是“nmsp”下的值。这就是您想要的吗
tree.iterfind('{http://www.namespace.co.il}H')
这就是你要找的吗
tree.iterfind('{http://www.namespace.co.il}H')
非常感谢。虽然我仍然很想知道为什么我的代码不起作用。谢谢!虽然我仍然很想知道为什么我的代码不起作用。您的XML不正确..missing>在XML的末尾不正确..missing>在