[英]How to get html tag text using XMLSlurper in Groovy
我正在尝试在Groovy中修改html代码。 我使用XMLSlurper对其进行了解析。 问题是我需要编辑某些包含文本和子标签的标签的文本。 HTML代码如下所示:
<ul><li>Text to modify<span>more text</span></li></ul>
在groovy中,我正在尝试以下代码:
def ulDOM = new XmlSlurper().parseText(ul);
def elements = ulDOM.li.findAll{
it.text().equals("text i am looking for");
}
问题是我在'elements'中得到了一个空数组,因为it.text()从'it'节点返回文本以及整个DOM子树文本节点。 在这种情况下,“文本以修改更多文本”。 请注意,contains()方法不足以解决我的问题。
我的问题是如何从某个标签中获取确切的文本,而不是从整个DOM子树中获取文本?
.text()评估子项并附加。 因此,它将始终包含合并的行。
您可以约束localText()吗? 不完全符合您的期望,它返回一个字符串数组。
import org.testng.Assert
ul='''<ul>
<li>Text to modify<span>more text</span>
</li>
</ul> '''
def ulDOM = new XmlSlurper().parseText(ul);
def elements = ulDOM.li.findAll{
String[] text = it.localText();
text[0].equals("Text to modify");
}
Assert.assertTrue(elements.size()==1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.