使用 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