Я пытаюсь извлечь содержимое CDATA из XML без использования имени узла GPath (или).Короче говоря, я хочу найти и получить innerText, содержащий раздел CDATA, из XML.
Мой XML выглядит следующим образом:
def xml = '''<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<root>
<Test1>This node contains some innerText. Ignore This.</Test1>
<Test2><![CDATA[this is the CDATA section i want to retrieve]]></Test2>
</root>'''
Из приведенного выше XML я хочу получить только содержимое CDATA, не используя ссылку на имя узла «Test2».Потому что имя узла не всегда одинаково в моем сценарии.
Также обратите внимание, что XML может содержать innerText в нескольких других узлах (Test1).Я не хочу, чтобы восстановить это.Мне просто нужен контент CDATA из всего XML.
Я хочу что-то вроде ниже (хотя приведенный ниже код неверен)
def parsedXML = new xmlSlurper().parseText(xml)
def cdataContent = parsedXML.depthFirst().findAll { it.text().startsWith('<![CDATA')}
Мой вывод должен быть:
this is the CDATA section i want to retrieve