让我们假设我们有xml文件:
<School Name = "school1">
<Class Name = "class A">
<Student Name = "student"/>
<Student/>
<!-- -->
</Class>
</School>
我有一个使用解析的python脚本。我想打印一个标记的行。例如,我想打印没有“Name”属性的标记行。这可能吗?我看到一个继承ElementTree的例子,但不理解它。
import xml.etree.ElementTree as ET
def read_root(root):
for x in root:
print(x.lineNum)
read_root(x)
def main():
fn = "a.xml"
try:
tree = ET.parse(fn)
except ET.ParseError as e:
print("\nParse error:", str(e))
print("while reading: " + fn)
exit(1)
root = tree.getroot()
read_root(root)
2条答案
按热度按时间nzk0hqpo1#
你的问题太不清楚了,不管怎样,如果你只是想检查标签是否有
Name
属性,并且想打印那个行号,你可以使用lxml
中的etree
,如下所示:输出:
yacmzcpb2#
您需要一个类似
ET.XMLPullParser
的解析器,它可以读取"comment"
和"process instructions"
、"namespces"
、"start"
和"end"
事件。如果XML文件
'comment.xml'
如下所示:您可以进行解析以查找不带属性
"Name"
和注解的TAG's
:输出: