[英]Can't get text of an XML element in python
我正在嘗試解析 python 中的 XML 文件。 這是 XML 代碼的一小部分:
<body>
<p feature="XXX">
<ph>text1 </ph>
DESIRED TEXT
<ph>text2</ph>
<ph>sometext...</ph>
</p>
</body>
我想得到“期望的文本”。 我做了以下事情:
import xml.etree.ElementTree as ET
tree = ET.parse(dir)
root = tree.getroot()
for el in root.findall("./body/p"):
print(el.attrib, el.text)
el.attrib 返回正確的值(在本例中為 XXX),但 el.text 返回無。 我錯過了什么? 我應該用什么來代替.text? 提前致謝。
您可以使用xmltodict
庫:
import xmltodict
with open('file.xml', 'r') as f:
result = xmltodict.parse(f.read())['body']['p']['#text']
Output:
DESIRED TEXT
下面(無需安裝外部庫)
import xml.etree.ElementTree as ET
xml = '''<body>
<p feature="XXX">
<ph>text1 </ph>
DESIRED TEXT
<ph>text2</ph>
<ph>sometext...</ph>
</p>
</body>'''
root = ET.fromstring(xml)
print(root.findall('.//ph')[0].tail.strip())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.