2

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

这是我正在使用的代码:

tr?.td?.each{
 println it
}

它打印以下内容:

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

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

it.text()

它什么也没打印。我想获得in 的内容

4

2 回答 2

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
于 2013-08-13T07:34:12.753 回答
0

是吗.get(0).text()

原因就是你得到的 td[attributes={colspan=9, width=129}; 值=[p[属性={}; 值=[O-??????????]]]]

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

于 2016-05-31T17:17:41.550 回答