lxml - 访问元素的meta标签值

2024-04-26 19:01:10 发布

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

我有以下XML元素:

<AdditionalAttribute name="Internal Version Identifier" value="UCV261KSBQGBPYF6" dataType="String"></AdditionalAttribute> 

有许多这样的标签,我想专门针对这一个。一些标记的示例如下:

^{pr2}$

我使用lxml和xpath尝试查询“Internal Version Identifier”的所有附加属性,一旦有了需要从“value”字段提取值的元素。在

我想找到name=“Internal Version Identifier”的AdditionalAttribute元素,然后在“value”字段中获取值。在

我尝试了一些不同的方法,但无法获得所需的价值:

以下是我当前的xpath查询:

tree.xpath('//AdditionalAttribute[starts-with(text(), "Internal")]')

Tags: name标记元素示例stringvalueversion标签
2条回答

尝试//AdditionalAttribute[@name="Internal Version Identifier"]。在

测试实例:

from lxml import etree

tree = etree.XML('''
<root>
<AdditionalAttribute name="Version Notes" value="This Item was released indirectly as a result of releasing Item 10X9061-11 to In Design." dataType="String"></AdditionalAttribute>
<AdditionalAttribute name="Change Number" value="BCV2386079506" dataType="String"></AdditionalAttribute>
<AdditionalAttribute name="Version Shared" value="No" dataType="String"></AdditionalAttribute>
<AdditionalAttribute name="Effective Version Shared" value="No" dataType="String"></AdditionalAttribute>
<AdditionalAttribute name="Material Effectivity Date" value="2016-03-15T08:52:33-08:00" dataType="String"></AdditionalAttribute>

<AdditionalAttribute name="Internal Version Identifier" value="UCV261KSBQGBPYF6" dataType="String"></AdditionalAttribute>
<AdditionalAttribute name="Item Creation Date" value="2016-03-01T09:08:14-08:00" dataType="String"></AdditionalAttribute>
</root>
''')

elements = tree.xpath('//AdditionalAttribute[@name="Internal Version Identifier"]')
assert len(elements) == 1
assert elements[0].attrib["value"] == 'UCV261KSBQGBPYF6'

或者,如果您只对value感兴趣,而不是整个元素:

^{pr2}$

您可以使用://AdditionalAttribute/@value; 它将抓取:value="UCV261KSBQGBPYF6"

相关问题 更多 >