2012-03-14 95 views
1

我正在從POST響應中讀取HTML文件並使用XMLSlurper解析它。頁面上的textarea節點會放入一些HTML代碼(非urlencoded - 不是我的選擇),當我讀取該值時,Groovy會去除所有標記。如何讓groovy/XMLSlurper從節點剝離html標籤?

例子:

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

當我分析上面的,然後找到(...)的 「文本域」 節點,它將返回給我:

This has html code for some reason 

和標記都沒有。我如何保留標籤?

+0

你可以把textarea塊放在CDATA中嗎? – traneHead 2012-03-15 08:39:45

回答

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>'