Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python计算XML文档中的标记数_Python_Xml_Parsing - Fatal编程技术网

使用Python计算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

我有一个非常复杂的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
    </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>在