我尝试使用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 -> 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()没有更新的内容。这段代码有什么问题?
答案 0 :(得分:0)
您必须使用XmlBuilder来生成XML。 XMLParser仅解析XML。
def xmlBuilder = new groovy.xml.StreamingMarkupBuilder().bind{ mkp.yield page }
xmlBuilder.toString();