我有一個這樣的 XML 檔案:
<recommendations>
<para>
<text>Text.</text>
</para>
<para>
<text>Text2.</text>
</para>
</recommendations>
我想使用python制作一個新的推薦標簽,將“Text”與“Text2”連接起來:Text.Text2。
有人能幫我嗎?
到目前為止我嘗試過:
xml_parsed = ET.parse(file)
xml_parsed_root = xml_parsed.getroot()
recommendations_root = item.findall(r'recommendations')
for para in recommendations_root:
for text in para:
recommendations = ET.Element('recomendations')
recommendations_root[text].text = text.text.append(recommendations)
xml_root.append(item)
我的預期輸出:
<recommendations> Text.Text2. </recommendations>
uj5u.com熱心網友回復:
為了解決這個問題,我引入了一個函式get_text(),它遍歷輸入的根并收集所有文本。剩下的就很簡單了:
from xml.etree import ElementTree as ET
def get_text(r):
buffer = ""
for para in r:
for text in para:
buffer = text.text
return buffer
doc = ET.parse("data.xml")
root = doc.getroot()
out = ET.Element("recommendations")
out.text = get_text(root)
print(ET.dump(out))
輸出:
<recommendations>Text.Text2.</recommendations>
更新
除了寫get_text(),你也可以使用 Xpath:
out = ET.Element("recommendations")
out.text = "".join(node.text for node in root.findall(".//text"))
print(ET.dump(out))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/517695.html
標籤:Pythonxml转换
