我正在用 groovy 阅读带有 XmlParser 的 html 页面。
这是我正在使用的代码:
tr?.td?.each{
println it
}
它打印以下内容:
td[attributes={colspan=9, width=129}; value=[p[attributes={}; value=[O-???????????]]]]
该页面包含 unicode 文本,但如果我打印:
it.text()
它什么也没打印。我想获得in 的内容。
我无法理解你描述的行为。给定
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
是吗.get(0).text()
原因就是你得到的 td[attributes={colspan=9, width=129}; 值=[p[属性={}; 值=[O-??????????]]]]
是 NodeList,它是 arraylist 的子类。但是 .text() 是 Node 的方法。因此,您需要从 NodeList 获取 Node obj,然后执行 .text()