0

我想用新节点“<colon/>”替换下面节点中的所有分号“:”实例,如下所示。

我要这个:

<shortName>触发器:数字边缘:源</shortName>

变成这样:

<shortName>触发器<colon/>数字边缘<colon/>来源</shortName>

我已经尝试过使用搜索和替换字符串,但是当我得到输出时,所有的 "< >" 都更改为 < 和 > 。谁能建议任何技术来做到这一点。谢谢你

4

1 回答 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>
于 2014-09-01T04:57:26.777 回答