1

我正在从 POST 响应中读取 HTML 文件并使用 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

并且没有任何标签。如何保留标签?

4

1 回答 1

2

我认为你得到了正确的数据,但打印出来是错误的......你可以尝试使用 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>'
于 2012-03-15T09:12:30.067 回答