如何将string()函数应用于每个属性?

时间:2014-11-14 15:15:49

标签: xpath xmllint

我需要在Bash脚本中获取一些超级引用。

以下命令使用curlxmllint来读取HTML页面的所有href属性:

curl --silent -L google.com | xmllint --html --xpath '//a/@href' - 

但我只需要属性的值。可以使用string()函数选择属性的值。但是如果我使用它,我只得到属性列表的第一个元素:

curl --silent -L google.com | xmllint --html --xpath 'string(//a/@href)' - 

如何将string()函数应用于每个属性?

1 个答案:

答案 0 :(得分:0)

你可以这样做(注意XPath表达式的不同之处):

curl --silent -L google.com | xmllint --html --xpath '//a/@*'

然后添加另一个管道以将输出发送到sed,过滤掉属性名称以获取所需的值。但这是一种从文档中提取内容的奇怪方法。