Я пытаюсь преобразовать xml в HTML-теги для Google Translate API в groovy. Поскольку Google переводит не html-теги, я хочу переместить тег xml в качестве имени атрибута и имя тега как «p». Я создал следующий XML из данных, которые у меня есть.
<root>
<glossary>
<GlossDiv>
<GlossList>
<element>
<GlossEntry>
<Abbrev>ISO 8879:1986</Abbrev>
<GlossDef>
<GlossSeeAlso>
<element>
<element>GML</element>
<element>XML</element>
</element>
</GlossSeeAlso>
<para>A meta-markup language, used to create markup languages such as DocBook.</para>
</GlossDef>
<GlossSee>markup</GlossSee>
<GlossTerm>Standard Generalized Markup Language</GlossTerm>
</GlossEntry>
</element>
</GlossList>
</GlossDiv>
</glossary>
Но я хочу вывести, как показано ниже:
<p id="root">
<p id="glossary">
<p id="GlossDiv">
<p id="GlossList">
<p id="element">
<p id="GlossEntry">
<p id="Abbrev">ISO 8879:1986</p>
<p id="GlossDef">
<p id="GlossSeeAlso">
<p id="element">
<p id="element">GML</p>
<p id="element">XML</p>
</p>
</p>
<p id="para">A meta-markup language, used to create markup languages such as DocBook.</p>
</p>
<p id="GlossSee">markup</p>
<p id="GlossTerm">Standard Generalized Markup Language</p>
</p>
</p>
</p>
</p>
</p>
И как только я получу переведенный контент из API Google, я хочу преобразовать его обратно в исходный формат XML. Я пробовал различные коды groovy и java для этого, но я не могу проанализировать XML, как ожидалось.
Кто-нибудь может помочь?
def newXml = oldXml.replaceAll(/<(\w+)>/, ) { all, group -> "<p id='$group'>" }.replaceAll(/<\/(\w+)>/, ) { all, group -> "</p>" }
- person MushyPeas   schedule 10.08.2018def lastTag def oldXml = newXml.replaceAll(/p(?: id=")?(?<tag>\w+)?"?>/, { all, group -> lastTag = (group) ? group : lastTag return "${lastTag}>" })
- person MushyPeas   schedule 10.08.2018