我有一个具有以下格式的XML文档:
<root>
<W> word </W>
<W> word2 </W>
<Some random tag>
<W> word 3 </W>
</Some random tag>
.
.
.
<X>
<W> </W>
<W> </W>
</X>
<W> word4 </W>
<W> word5 </W>
<Some random tag>
<W> word6 </W>
</Some random tag>
.
.
.
<X>
<W> </W>
<W> </W>
</X>
</root>
</X>
上方有一堆标签。其中<W>
可能存在任何顺序,也可能存在于其他标签中甚至外部。我希望提取<W>
前存在的</X>
标记中的所有文本,并将其放在列表中。然后,应将第一个<W>
和第二个</X>
之间出现的</X>
中的文本放入新列表中。
我该怎么做?
我尝试了什么:我使用了xml
模块。由于没有<W>
可能存在的特定顺序,因此我遍历所有标签。但是,以这种方式,我无法确定</X>
何时关闭,这是一个问题,因为<W>
标记内也可能有一些<X>
。除了这种方法,我也没主意。
编辑:明确说明:
<root>
<W> word </W>
<W> word2 </W>
<Some_random_tag>
<W> word 3 </W>
</Some_random_tag>
<X>
<W>alice </W>
<W>bob </W>
</X>
<W> word4 </W>
<W> word5 </W>
<Some_random_tag>
<W> word6 </W>
</Some_random_tag>
<X>
<W>one </W>
<W>two </W>
</X>
</root>
在上面的示例中,我需要一个列表中的word, word2, word3, Alice, Bob
(<W>
中的所有文本都位于第一个</X>
的上方)。并且word4, word5, word6, one, two
在另一个列表中。(<W>
中的所有文本都出现在第一个</X>
和第二个</X>
之间)。