如何通过python获得xml文件中没有标记的文本

2024-10-05 15:18:15 发布

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

<?xml version='1.0' encoding='UTF-8'?>
<GateDocument>
<!-- The document content area with serialized nodes -->

<TextWithNodes><Node id="0" />Norway<Node id="6" /> <Node id="7" 
/>to<Node id="9" /> <Node id="10" />'<Node id="11" />completely<Node 
id="21" /> <Node id="22" />ban<Node id="25" /> <Node id="26" 
/>petrol<Node id="32" /> <Node id="33" />powered<Node id="40" /> <Node 
id="41" />cars<Node id="45" /> <Node id="46" />by<Node id="48" /> <Node 
id="49" />2025<Node id="53" />'<Node id="54" />.<Node id="55" /> . 
</TextWithNodes>
</GateDocument>

从上面的XML文件中,您可以注意到“TextWithNodes”标记中的单词没有标记。例如,如何通过python获得“汽油动力汽车”文本

谢谢


Tags: the标记idnodeversionwithareaxml
1条回答
网友
1楼 · 发布于 2024-10-05 15:18:15

在用findall()找到所需节点后,可以使用itertext()方法:

from xml.etree import ElementTree as ET
x = '''<?xml version='1.0' encoding='UTF-8'?>
<GateDocument>
<!  The document content area with serialized nodes  >

<TextWithNodes><Node id="0" />Norway<Node id="6" /> <Node id="7"
/>to<Node id="9" /> <Node id="10" />'<Node id="11" />completely<Node
id="21" /> <Node id="22" />ban<Node id="25" /> <Node id="26"
/>petrol<Node id="32" /> <Node id="33" />powered<Node id="40" /> <Node
id="41" />cars<Node id="45" /> <Node id="46" />by<Node id="48" /> <Node
id="49" />2025<Node id="53" />'<Node id="54" />.<Node id="55" /> .
</TextWithNodes>
</GateDocument>'''
t = ET.fromstring(x)
print(''.join(t.findall('.//TextWithNodes')[0].itertext()))

这将输出:

Norway to 'completely ban petrol powered cars by 2025'. .

相关问题 更多 >