Python: 如何在XML文件中用新节点替换字符?
我想把我下面这个节点中的所有冒号 ":" 替换成一个新的节点 "<colon/>",就像下面这样。
我想要这个:
<shortName>Trigger:Digital Edge:Source</shortName>
变成这样:
<shortName>Trigger<colon/>Digital Edge<colon/>Source</shortName>
我已经尝试过用搜索和替换字符串的方法,但输出时所有的 "< >" 都变成了 < 和 > 。有没有人能给我一些建议,教我怎么做?谢谢!
1 个回答
1
这个想法是获取节点的文本内容,然后用冒号把它分开,逐个添加,同时为每个冒号设置.tail
:
import xml.etree.ElementTree as ET
data = """<?xml version="1.0" encoding="UTF-8" ?>
<body>
<shortName>Trigger:Digital Edge:Source</shortName>
</body>"""
tree = ET.fromstring(data)
for element in tree.findall('shortName'):
items = element.text.split(':')
if not items:
continue
element.text = items[0]
for item in items[1:]:
colon = ET.Element('colon')
colon.tail = item
element.append(colon)
print ET.tostring(tree)
输出结果是:
<body>
<shortName>Trigger<colon />Digital Edge<colon />Source</shortName>
</body>