Groovy xml获取节点文本

时间:2013-08-13 05:22:41

标签: xml groovy

我在groovy中正在阅读带有XmlParser的html页面。

这是我正在使用的代码:

tr?.td?.each{
 println it
}

它打印以下内容:

td[attributes={colspan=9, width=129}; value=[p[attributes={}; value=[O-???????????]]]]

该页面包含unicode文本,但如果我打印:

it.text()

它什么都不打印。我希望 中的内容

2 个答案:

答案 0 :(得分:0)

我无法得到你描述的行为。给定

def xml = '''<html>
    <body>
        <table>
            <tr>
                <td>Woo</td>
                <td>Yay</td>
            </tr>
            <tr>
                <td>Woo</td>
                <td>Yay</td>
            </tr>
        </table>
    </body>
</html>'''

import groovy.xml.*

new XmlParser().parseText( xml ).body.table.tr.td.each {
    println it.text()
}

打印

Woo
Yay
Woo
Yay

答案 1 :(得分:0)

做theis it.get(0).text()

理由就是你得到的 td [attributes = {colspan = 9,width = 129};值= [P [属性= {};值=〔O - ???????????]]]]

是NodeList,它是arraylist的子类。 但.text()是Node的方法。 所以你需要从NodeList获取Node obj然后执行.text()