【发布时间】:2016-11-03 12:34:41
【问题描述】:
我还是编程新手,但我了解一些 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>
现在我需要做的是先找到一个属性值,让我们采取
<token word="dog" att1="noun"att2="animal"</token>
举个例子。因此,在文档中的所有结构中,我想首先找到所有具有 animal 作为 att2 值的节点,然后将该节点的所有兄弟节点放入一个列表中。因为每个节点都有几个属性,所以我试图将它们中的每一个都包含在一个不同的列表中,也就是说,从结构中具有 animal 的所有属性中创建一个列表其子项的 att2 值之一。例如:
listWord = [Rocky, the, yellow, dog]
listAtt1 = [noun, article, adjective, noun]
listAtt2 = [name, ,color, animal]
目前我只是想知道这是否可能。到目前为止,我只是设法用属性结构撞到了墙上,更不用说空值了。
【问题讨论】:
-
您的 XML 无效,它错过了一些关闭 > 标记
-
您的 XML 结构已损坏,所有
<token>标记都缺少结束>,可能是复制和粘贴错误。 -
THEN 将该节点的所有兄弟节点放入一个列表中。 => 你到底怎么称呼兄弟姐妹?
-
示例
listWordlistAtt1和listAtt2是您要构建的列表吗? -
哎呀,是的,只是在构建结构时忘记了关闭。但他们就在那里。
标签: python xml xpath elementtree