【发布时间】:2015-05-11 09:45:39
【问题描述】:
我正在尝试将文本书挡添加到 XML 文件中的字符串。如果之前已经翻译过一个字符串,我想在字符串的开头和结尾添加一个@@@ 和### 以便进一步处理。最终结果如下所示:
<group>
<seg-source>
<mrk mid="1" mtype="seg">I have a <g id="157">red</g> pen.</mrk>
</seg-source>
<target>
<mrk mid="1" mtype="seg">@@@J'ai un stylo <g id="157">rouge</g>.###</mrk>
</target>
</group>
我在使用xml.minidom 之前尝试过并创建了一个通用文本节点,例如start_tag = xmldoc.createTextNode(u'@@@'),并且能够将节点插入/附加为子节点。 (由于种种原因,我最终放弃了使用minidom。)
我能够相当快地将我的脚本从minidom 转换为elementtree,但我被困在了这个最关键的点上。我已经阅读并重新阅读了文档,但找不到任何特定于我需要做的事情,特别是因为很多 <mrk> 元素都有子元素,例如示例中的 <g> 标记。另外,有时<mrk> 节点中的第一件事可能不是文本元素,所以我无法替换文本。
Python 代码非常基础,如您所见,我为书挡设置了占位符。
for target in group.iter('target'):
for mrk in target.iter('mrk'):
# Adding "@@@" at front of <mrk>
mrk.insert(0, <magical text-only element here>)
# Adding "###" to end of <mrk>
mrk.append(<magical text-only element here>)
非常感谢!
【问题讨论】:
标签: python xml elementtree minidom