Как сохранить groovy / XMLSlurper от извлечения html-тегов из узла? - PullRequest
1 голос
/ 15 марта 2012

Я читаю файл HTML из ответа POST и анализирую его с помощью XMLSlurper. В узел textarea на странице вставлен некоторый HTML-код (без urlencoded - не мой выбор), и когда я читаю это значение, Groovy удаляет все теги.

Пример:

<html>
    <body>
        <textarea><html><body>This has html code for some reason</body></html></textarea>
    </body>
</html>

Когда я анализирую вышеизложенное и затем нахожу (...) узел "textarea", он возвращает мне:

This has html code for some reason

и ни один из тегов. Как мне сохранить метки?

1 Ответ

2 голосов
/ 15 марта 2012

Я думаю, что вы получаете правильные данные, но распечатываете их неправильно ... Можете ли вы использовать StreamingMarkupBuilder для преобразования узла обратно в кусок xml?

def xml = '''<html>
            |  <body>
            |    <textarea><html><body>This has html code for some reason</body></html></textarea>
            |  </body>
            |</html>'''

def ta = new XmlSlurper().parseText( xml ).body.textarea

String content = new groovy.xml.StreamingMarkupBuilder().bind {
  mkp.yield ta.children()
}

assert content == '<html><body>This has html code for some reason</body></html>'
...