Xml groovy findAll扩展&;书信电报
我有一个XML文档,其中嵌入了用“<”和“>”包装的HTML标记(它通过Xml groovy findAll扩展&;书信电报,xml,groovy,Xml,Groovy,我有一个XML文档,其中嵌入了用“<”和“>”包装的HTML标记(它通过XMLSlurper.parseText()进行干净的解析)。当我使用Groovy的depthFirst.findAll()时,返回的列表显示<和>被替换。这使得后续搜索原始XML内容变得困难,因为返回的列表项不再与原始XML中的字符匹配 XML中的片段: <label>Read about it <a href="http://whatever">here&l
XMLSlurper.parseText()
进行干净的解析)。当我使用Groovy的depthFirst.findAll()
时,返回的列表显示<
和>
被
替换。这使得后续搜索原始XML内容变得困难,因为返回的列表项不再与原始XML中的字符匹配
XML中的片段:
<label>Read about it <a href="http://whatever">here</a></label>
给我:
Read about it <a href="http://whatever">here</a>
了解它
有没有一种方法可以防止像</>这样的序列被findAll这样的方法破坏?看看——这是类似的问题。建议的解决方案在您的情况下也很有效:
def xml = '<label>Read about it <a href="http://whatever">here</a></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 <a href="http://whatever">here</a>'
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 <a href="http://whatever">here</a></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 <a href="http://whatever">here</a>'