- У меня есть строка, которая содержит данные XML.
- Мне нужно вставить новый узел в качестве дочернего элемента определенного узла (я знаю атрибут id для родителя)
- Значение нового узла должно быть неэкранировано, когда я печатаю новые данные xml.
код:Редактирование строки XML с Groovy
String xmlSampleToEdit = '''
<sample>
<items>
<one id="1">ONE</one>
<ten id="10">TEN</ten>
<twenty id="20"></twenty>
</items>
</sample>
'''
String newNodeValue = 'twenty&one' //to keep unescaped !!!!
String newNodeName = 'twentyone'
String parentNodeId = '20'
String ExpectedResult = '''
<sample>
<items>
<one id="1">ONE</one>
<ten id="10">TEN</ten>
<twenty id="20">
<twentyone>twenty&one</twentyone>
</twenty>
</items>
</sample>
'''
Этот вид узлов будет содержать данные, которые будут обработаны (не для отображения HTML-страниц), так что если он спасся обработка сломается.
Возможно ли вставить новый узел с StreamingMarkupBuilder и mkp.yieldUnescaped , если я не знаю XML-контент?
Любое другое решение?
Значение узла, такие как 'двадцать & one' не допускаются. Вы не можете иметь unescaped амперсанды в XML-документах. – mzjn
И используя CDATA? – James
также, почему вы хотите, чтобы он не был скрыт? просто чтобы вы его правильно прочитали? что не обрабатывает значение правильно, что вынуждает вас отменить его? точка экранированных данных заключается в том, что она правильно вернет целевую систему. –