使用lxml和path解析xml,但如果它有xmlns声明,则获取空列表

2024-09-30 23:36:33 发布

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

我有一个xml文件,我需要解析一个标记的值。元素的XPATH"//provider"。如何使用lxml来解析这个标记?这是xml的开始:

<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://...">
    <provider>testmovieprovider</provider>
    <language>ja-JP</language>
    <!-- more stuff -->
</package>

以下是我尝试过的:

^{pr2}$

Tags: 文件标记http元素packageversionxmlprovider
2条回答

使用xml namespace尝试xpath

我添加了名称空间xmlns="http://codespeak.net/ns/test1"

然后用了下面的代码

>>> xml_node = etree.fromstring(st)
>>> xml_node.xpath('//t:provider/text()',namespaces={'t': 'http://codespeak.net/ns/test1'})
['testmovieprovider']
>>>

我的st字符串是

^{pr2}$

请尝试如下XPath:

/*/*[local-name()='provider']

相关问题 更多 >