【发布时间】:2014-09-01 04:44:09
【问题描述】:
我想将下面节点中的所有分号“:”实例替换为新节点“
我想要这个:
触发器:数字边缘:源
变成这样:
触发器 数字边缘 来源
我已经尝试过使用搜索和替换字符串,但是当我得到输出时,所有的“”都变成了 < 和 > 。 谁能建议任何技术来做到这一点。 谢谢你
【问题讨论】:
标签: python xml elementtree xml.etree
我想将下面节点中的所有分号“:”实例替换为新节点“
我想要这个:
触发器:数字边缘:源
变成这样:
触发器 数字边缘 来源
我已经尝试过使用搜索和替换字符串,但是当我得到输出时,所有的“”都变成了 < 和 > 。 谁能建议任何技术来做到这一点。 谢谢你
【问题讨论】:
标签: python xml elementtree xml.etree
想法是获取节点文本,用冒号分割并一个一个添加,同时为每个冒号设置.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>
【讨论】: