【发布时间】:2017-08-10 00:57:33
【问题描述】:
我试图在我的所有 xml 文件中以增量方式为 TEXT_VALUE 字段的值添加前缀,只有带有 ID="Example" 的名为“TRANSL”的标签。
目前我正在手动进行,但由于我有数千个,我认为我应该以编程方式进行。
这是初始版本:
<TRANSL ID="Example">
<TRANSCIPT>
<REF_TEXT TEXT_ID="a680" TXT_TM="a24">
<TEXT_VALUE>this is an example</TEXT_VALUE>
</REF_TEXT>
</TRANSCIPT>
<TRANSCIPT>
<REF_TEXT TEXT_ID="a681" TXT_TM="a25">
<TEXT_VALUE>another example</TEXT_VALUE>
</REF_TEXT>
</TRANSCIPT>
<TRANSCIPT>
<REF_TEXT TEXT_ID="a682" TXT_TM="a26">
<TEXT_VALUE>third example</TEXT_VALUE>
</REF_TEXT>
</TRANSCIPT>
</TRANS>
这是经过编辑的版本:
<TRANSL ID="Example">
<TRANSCIPT>
<REF_TEXT TEXT_ID="a680" TXT_TM="a24">
<TEXT_VALUE>1-this is an example</TEXT_VALUE>
</REF_TEXT>
</TRANSCIPT>
<TRANSCIPT>
<REF_TEXT TEXT_ID="a681" TXT_TM="a25">
<TEXT_VALUE>2-another example</TEXT_VALUE>
</REF_TEXT>
</TRANSCIPT>
<TRANSCIPT>
<REF_TEXT TEXT_ID="a682" TXT_TM="a26">
<TEXT_VALUE>3-third example</TEXT_VALUE>
</REF_TEXT>
</TRANSCIPT>
</TRANS>
如何以编程方式进行?有没有专业的 xml 编辑器?如果没有,我该如何在 python、powershell、perl、notepad ++ 或任何其他中做到这一点?
这是我在 python 中作为记事本 ++ 插件的脚本:
def increment_replace(match):
return "<TEXT_VALUE>{}".format(str(int(match.group(1))+1))
editor.rereplace(r'\<TEXT_VALUE\>', increment_replace)
但它不起作用......
【问题讨论】:
标签: python regex xml xml-parsing auto-increment