1

我尝试使用 groovy XmlParser 从文件中的 html 内容更新锚标记:

String fileContent = new File('//' + url.toString()).text
    page = new XmlParser(new org.cyberneko.html.parsers.SAXParser()).parseText(fileContent)
    page.'**'.A.grep { 锚点 ->
        anchor.attribute('href') != null && !anchor.'@href'?.startsWith('http') && !anchor.'@href'?.startsWith('ftp:') && !anchor.'@ href'?.startsWith('mailto:') && !anchor.'@href'?.startsWith('attachments')
    }.each { anchorToReplace ->
        anchorToReplace.'@href' = getTitleFromUrl(anchorToReplace.'@href')
        println(anchorToReplace.'@href')
    }

并且 page.text() 没有更新的内容。这段代码有什么问题?

4

1 回答 1

0

您必须使用 XmlBuilder 来生成 XML。XMLParser 只解析 XML。

def xmlBuilder = new groovy.xml.StreamingMarkupBuilder().bind{ mkp.yield page }
xmlBuilder.toString();
于 2013-10-23T20:06:56.273 回答