使用 python 从 XML 文件中提取每个节点(标签)的 xpath
Extract the xpath for every node (tag) from XML file using python
我只有类似下面的 XML 文件:
<xml>
<Catalog>
<Book>
<Textbook>
<Author ="MEMO" />
</Textbook>
</Book>
<Journal>
<Science>
<Author ="David" />
</Science>
</Journal>
</Catalog>
</xml>
我想做的是编写一个 python 代码,该代码将为我的 XML 文件中的每个节点查找并打印 xpath,任何想法或建议我将非常感激 :) ,我可以使用任何模型来查找完整路径示例,结果应该如下所示:
备注:Catalog/Book/Textbook/Author
可以用lxml来完成:
import lxml.html as lh
from lxml import etree
books = """[your html above]"""
doc = lh.fromstring(books)
tree = etree.ElementTree(doc)
for e in doc.iter('author'):
print("Memo: ",tree.getpath(e).replace('/xml/',''))
输出:
Memo: catalog/book/textbook/author
Memo: catalog/journal/science/author
我只有类似下面的 XML 文件:
<xml>
<Catalog>
<Book>
<Textbook>
<Author ="MEMO" />
</Textbook>
</Book>
<Journal>
<Science>
<Author ="David" />
</Science>
</Journal>
</Catalog>
</xml>
我想做的是编写一个 python 代码,该代码将为我的 XML 文件中的每个节点查找并打印 xpath,任何想法或建议我将非常感激 :) ,我可以使用任何模型来查找完整路径示例,结果应该如下所示:
备注:Catalog/Book/Textbook/Author
可以用lxml来完成:
import lxml.html as lh
from lxml import etree
books = """[your html above]"""
doc = lh.fromstring(books)
tree = etree.ElementTree(doc)
for e in doc.iter('author'):
print("Memo: ",tree.getpath(e).replace('/xml/',''))
输出:
Memo: catalog/book/textbook/author
Memo: catalog/journal/science/author