1

我目前正在将 XML 从一个 CMS 迁移到另一个,并且需要将一些文本转换为元素。由于系统的工作原理,一些编辑器只能输入转义文本。挑战是替换其中一些转义元素并将它们转换为有效的 XML 元素。

源文件:

<p>Press the &lt;button-name&gt;Select key &lt;/button-name&gt;to show more information.</p>
<p>Press the &lt;button-name&gt;Back key&lt;/button-name&gt; to save the 
values.</p>
<p>When the storage is completed, the &lt;product-name/&gt; machine
displays:</p>
<p>&lt;attention&gt;
&lt;display-text translate="no"&gt;STORAGE COMPLETED
Press BACK to exit&lt;/display-text&gt;
&lt;/attention&gt;</p>

我想做的事

 Replace &lt;button-name&gt; with <gui>
 Replace &lt;button-name&gt; 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>&lt;attention&gt; &lt;display-text translate="no"&gt;STORAGE COMPLETED 
 Press BACK to exit&lt;/display-text&gt;
&lt;/attention&gt;</p>

我尝试使用基于字符串的搜索和替换,但是因为我想要一个正确的 XML 元素作为输出,所以不会这样做。

4

1 回答 1

0

这可能只能通过基于字符串的搜索和替换来工作 - 取决于您想要切换到 xml 的文本“标签”的数量。我看到的更大的问题实际上是将它全部保存在适当的 XML 元素中。

我认为如果不编写一个小工具来读取文本元素之间的字符串,您就无法保留它,例如

&lt;button-name&gt;

并将它们复制到对象的正确变量中,然后将其解析为符合 XML 的元素。

它并不真正取决于您喜欢的语言,因为应该有大量可用的 object-xml 解析器

只需更改标签,您还可以将文本的编码切换为

&lt; would turn into -> <

然后过滤 <> 之间的任何内容以交换您想要的内容,例如 button-name 到 gui

希望我能给你一个想法..

于 2013-06-12T10:10:54.933 回答