Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml groovy findAll扩展&;书信电报_Xml_Groovy - Fatal编程技术网

Xml groovy findAll扩展&;书信电报

Xml groovy findAll扩展&;书信电报,xml,groovy,Xml,Groovy,我有一个XML文档,其中嵌入了用“<”和“>”包装的HTML标记(它通过XMLSlurper.parseText()进行干净的解析)。当我使用Groovy的depthFirst.findAll()时,返回的列表显示<和>被替换。这使得后续搜索原始XML内容变得困难,因为返回的列表项不再与原始XML中的字符匹配 XML中的片段: <label>Read about it &lt;a href="http://whatever"&gt;here&l

我有一个XML文档,其中嵌入了用“<”和“>”包装的HTML标记(它通过
XMLSlurper.parseText()
进行干净的解析)。当我使用Groovy的
depthFirst.findAll()
时,返回的列表显示
<
>
替换。这使得后续搜索原始XML内容变得困难,因为返回的列表项不再与原始XML中的字符匹配

XML中的片段:

<label>Read about it &lt;a href="http://whatever"&gt;here&lt;/a&gt;</label>
给我:

Read about it <a href="http://whatever">here</a>
了解它
有没有一种方法可以防止像</>这样的序列被findAll这样的方法破坏?

看看——这是类似的问题。建议的解决方案在您的情况下也很有效:

def xml = '<label>Read about it &lt;a href="http://whatever"&gt;here&lt;/a&gt;</label>'

def root = new XmlSlurper().parseText(xml)
def list = root.depthFirst().findAll{ it.name().equalsIgnoreCase('label') }

String content = new groovy.xml.StreamingMarkupBuilder().bind {
  mkp.yield list[0].text()
}

assert content == 'Read about it &lt;a href="http://whatever"&gt;here&lt;/a&gt;'
defxml='了解它a href=”http://whatever“这里/a'
def root=new XmlSlurper().parseText(xml)
def list=root.depthFirst().findAll{it.name().equalsIgnoreCase('label')}
String content=new groovy.xml.StreamingMarkupBuilder().bind{
mkp.yield list[0].text()
}
断言内容=='阅读相关内容a href='http://whatever“这里/a'
def xml = '<label>Read about it &lt;a href="http://whatever"&gt;here&lt;/a&gt;</label>'

def root = new XmlSlurper().parseText(xml)
def list = root.depthFirst().findAll{ it.name().equalsIgnoreCase('label') }

String content = new groovy.xml.StreamingMarkupBuilder().bind {
  mkp.yield list[0].text()
}

assert content == 'Read about it &lt;a href="http://whatever"&gt;here&lt;/a&gt;'