如其他答案中所述,您无法在“纯”
XML中执行此操作.你需要嵌入一种编程语言.我个人最喜欢的是Groovy,它的
integration with ANT非常棒.
这是一个从groovy主页检索徽标URL的示例:
parse:
print:
[echo]
[echo] Logo URL: http://groovy.codehaus.org/images/groovy-logo-medium.png
[echo]
build.xml文件
Build使用ivy plug-in来检索所有第三方依赖项.
import org.htmlcleaner.*
def address = 'http://groovy.codehaus.org/'
// Clean any messy HTML
def cleaner = new HtmlCleaner()
def node = cleaner.clean(address.toURL())
// Convert from HTML to XML
def props = cleaner.getProperties()
def serializer = new SimpleXmlSerializer(props)
def xml = serializer.getXmlAsString(node)
// Parse the XML into a document we can work with
def page = new XmlSlurper(false,false).parseText(xml)
// Retrieve the logo URL
properties["logo"] = page.body.div[0].div[1].div[0].div[0].div[0].img.@src
Logo URL: ${logo}
解析逻辑是纯粹的groovy编程.我喜欢你轻松浏览页面DOM树的方式:
// Retrieve the logo URL
properties["logo"] = page.body.div[0].div[1].div[0].div[0].div[0].img.@src
的ivy.xml
Ivy与Maven类似.它管理您对第三方软件的依赖性.在这里它被用来拉下Groovy和Groovy逻辑正在使用的HTMLCleaner库:
如何安装常春藤
Ivy是标准的ANT插件.下载它的jar并将其放在以下目录之一:
$HOME/.ant/lib
$ANT_HOME/lib
我不知道为什么ANT项目不附带常春藤.