我目前正在将XML从一个CMS迁移到另一个CMS,并且需要将一些文本转换为元素。由于系统的工作原理,一些编辑器只能输入转义文本。挑战是替换其中一些转义元素并将它们转换为有效的XML元素。
源文件:
<p>Press the <button-name>Select key </button-name>to show more information.</p>
<p>Press the <button-name>Back key</button-name> to save the
values.</p>
<p>When the storage is completed, the <product-name/> machine
displays:</p>
<p><attention>
<display-text translate="no">STORAGE COMPLETED
Press BACK to exit</display-text>
</attention></p>
我想做什么
Replace <button-name> with <gui>
Replace <button-name> with <kt.in name="custom-name"/>
Keeping other escaped elements.
我想要的XML
<p>Press the <gui>Select key</gui>to
show more information.</p>
<p>Press the <gui>Back key</gui>
to save the calibrations values.</p>
<p>When the storage is completed, the <kt.in name="custom-name"/> machine
displays:</p>
<p><attention> <display-text translate="no">STORAGE COMPLETED
Press BACK to exit</display-text>
</attention></p>
我尝试使用基于字符串的搜索和替换,但因为我想要一个合适的XML元素作为输出,所以不会这样做。
答案 0 :(得分:0)
这可能仅适用于基于字符串的搜索和替换 - 取决于您要切换到xml的文本“标签”的数量。我看到的更大问题实际上是将其全部保存在正确的XML元素中。
我不认为你可以保留这个,而不用写一个小工具来读取文本元素之间的字符串,例如。
<button-name>
并将它们复制到Object的正确变量中,然后将其解析为XML符合元素。
它并不真正取决于您喜欢的语言,因为应该有足够的object-xml parsers available
如果只是更改标签,您还可以将文本的编码切换为
< would turn into -> <
然后过滤&lt;&gt;之间的任何内容交换你想要的那些,例如按钮名称为gui
希望我能给你一个想法..