簡體   English   中英

無法在 python 中獲取 XML 元素的文本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM