我想用新节点“<colon/>”替换下面节点中的所有分号“:”实例,如下所示。
我要这个:
<shortName>触发器:数字边缘:源</shortName>
变成这样:
<shortName>触发器<colon/>数字边缘<colon/>来源</shortName>
我已经尝试过使用搜索和替换字符串,但是当我得到输出时,所有的 "< >" 都更改为 < 和 > 。谁能建议任何技术来做到这一点。谢谢你
我想用新节点“<colon/>”替换下面节点中的所有分号“:”实例,如下所示。
我要这个:
<shortName>触发器:数字边缘:源</shortName>
变成这样:
<shortName>触发器<colon/>数字边缘<colon/>来源</shortName>
我已经尝试过使用搜索和替换字符串,但是当我得到输出时,所有的 "< >" 都更改为 < 和 > 。谁能建议任何技术来做到这一点。谢谢你
这个想法是获取节点文本,用冒号分割它并在.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>