我想在所有的xml文件中以增量方式將TEXT_VALUE
字段的值作爲前綴的前綴,只有名爲「TRANSL」的標籤帶有ID =「示例」。 目前我正在手動做,但由於我有幾千個,我想我應該以編程方式。xml批量文件編輯器按編號遞增
這裏是最初版本:
<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)
,但它不工作...
應該怎麼跑的?我是這個環境的新手......我如何運行這個來替換所有文件中的作業? – cplus
@cplus:您可以使用任何XSLT-1.0處理器執行此作業。哪一個取決於你的操作系統。在任何Linux版本中,您可以使用例如'xsltproc',通常是默認安裝的一部分。但Windows和Mac也有很多其他功能。與操作系統無關的是[Saxon](http://saxon.sourceforge.net/),它是用Java編寫的,同時也支持XSLT-2.0。 – zx485
@cplus:如果您通過_bash腳本_/_批處理file_傳遞文件名,此任務應在一分鐘內完成。 – zx485