我在编程方面还是新手,但我懂一些Python,对XPath和XML基本熟悉。目前,我正在处理一些如下所示的XML数据:
<foo>
<bar>
<unit>
<structure>
<token word="Rocky" att1="noun" att2="name">Rocky</token>
<token word="the" att1="article" att2="">the</token>
<token word="yellow" att1="adjective" att2="color">yellow</token>
<token word="dog" att1="noun" att2="animal">dog</token>
</structure>
</unit>
</bar>
</foo>
现在我需要做的是首先找到一个属性值,让我们
^{pr2}$比如说。因此,在文档中的所有结构中,我想首先找到具有att2值的所有节点,然后将该节点的所有同级节点放入一个列表中。因为每个节点都有多个属性,所以我尝试将每个属性都包含到一个不同的列表中,也就是说,在其子节点的att2值中包含animal的所有属性组成一个列表。例如:
listWord = [Rocky, the, yellow, dog]
listAtt1 = [noun, article, adjective, noun]
listAtt2 = [name, ,color, animal]
现在我只是想知道这是否可能。到目前为止,我只设法用属性结构碰壁,更不用说空值了。在
在包含结束标记标记的情况下,假设文本包含在
test.xml
中,则如下所示:将返回:
^{pr2}$e.iter()
允许您迭代e
作为根和它下面的元素-我们指定token
标记来只返回token
元素。child.attrib
返回属性字典,我们将其附加到列表中。在编辑:关于您问题的第二点,我认为以下几点(尽管可能不是最佳实践)可以满足您的需求:
我们首先创建一个包含
structure
子元素的列表,然后返回每个结构的所有then属性。在我不确定我是否理解您的问题,但以下是我理解的部分(使用lxml和xpath):
相关问题 更多 >
编程相关推荐