繁体   English   中英

如何在Groovy中使用XMLSlurper获取html标签文本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM