在Python中获取XML节点的路径

2024-06-02 08:07:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我经常处理相当复杂的文档,实际上我是逆向工程。我需要编写代码来修改某些节点的值,用遍历的路径到达作为条件的节点。在

在检查XML数据以了解其结构时,在该路径上有一个表示将非常有用。然后我可以使用代码中的路径来到达那个特定的节点。在

例如,我可以从下面的文档中获取表示目录gt;Book>;Book>;Author。在

Python中有没有允许我这样做的库?在

<xml>
    <Catalog>
        <Book>
            <Textbook>
                <Author ="James" />
            </Textbook>
        </Book>
        <Journal>
            <Science>
                <Author ="James" />
            </Science>
        </Journal>
    </Catalog>
</xml>

Tags: 代码文档gt路径节点xml工程author
1条回答
网友
1楼 · 发布于 2024-06-02 08:07:27

lxml库有一个etree.Element.getpath方法(在上一个链接中搜索Generating XPath expressions,它返回一个结构化的绝对XPath表达式来找到元素“。下面是lxml库文档中的一个示例:

>>> a  = etree.Element("a")
>>> b  = etree.SubElement(a, "b")
>>> c  = etree.SubElement(a, "c")
>>> d1 = etree.SubElement(c, "d")
>>> d2 = etree.SubElement(c, "d")

>>> tree = etree.ElementTree(c)
>>> print(tree.getpath(d2))
/c/d[2]
>>> tree.xpath(tree.getpath(d2)) == [d2]
True

相关问题 更多 >