Lxml:将xml文件的一部分作为字符串返回

1 投票
1 回答
1856 浏览
提问于 2025-04-18 11:23

我正在使用lxml解析我的xml文件,文件内容大致是这样的:

    # some elements above
    <contact>
       <phonenumber>
            #something
       </phonenumber>
    </contact>

我想只返回xml文件的一部分。

比如说,如果我在处理电话号码的部分,我希望lxml能把这个标签之间的所有内容作为一个字符串返回。

我并不想只返回电话号码标签之间的文本,而是想要整个字符串:

    <phonenumebr>something</phonenumber>

这样做可以吗?

1 个回答

1

要打印XML树的一部分,你可以使用 lxml.etree.tostring 这个方法。在Python 2中可以这样做:

In [1]: from lxml.etree import tostring, parse

In [2]: tree = parse('test.xml')

In [3]: elem = tree.xpath('//phonenumber')[0]

In [4]: print tostring(elem)
<phonenumber>
            something
       </phonenumber>

想了解更多信息,你可以参考 lxml教程中的“序列化”部分。

撰写回答