我想在下面的节点中用新节点“< colon />”替换分号“:”的所有实例如下图所示。
我想要这个:
< shortName>触发器:数字边缘:来源< / shortName>
变成这样:
< shortName>触发器<冒号/>数字边缘<冒号/>来源< / shortName>
我已经尝试过使用搜索和替换字符串,但是当我得到输出时所有的“<>”改为& lt和& gt。 任何人都可以建议任何技术来做到这一点。 谢谢
答案 0 :(得分: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>