如何提取XML文档中结束标记上方的标记?

时间:2018-08-10 03:23:46

标签: xml python-3.x

我有一个具有以下格式的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>之间)。

0 个答案:

没有答案