所以我使用Python 3.2.1的cElementTree解析一些XML文件,在解析过程中我发现有些标签缺少属性信息.我想知道是否有任何简单的方法来获取xml文件中这些元素的行号.
在使用lxml解析XML文档时,我想查找特定标签的开始和结束行号。我可以使用上的sourceline属性来找到起始标签的位置lxml.etree.Element,但是我在寻找结束标签的行号方面很费力。
我尝试的一个简单例子:
import lxml.etree as ET
xml_sample = b'''<?xml version="1.0" encoding="utf-8"?>
<collection>
<item>
<value>foo</value>
</item>
<item>
<value>
bar
</value>
</item>
</collection>'''
for el in ET.fromstring(xml_sample).getroottree().findall('//value'):
print('Found value "{el.text}" starting on line {el.sourceline} '
'and ending on line ???.'.format(el=el))
Run Code Online (Sandbox Code Playgroud)
value在上面的示例中,是否可以获取元素的结束标记行号?