使用xmlStar获取XML节点属性
我正在尝试使用以下方法从rss提要XML获取XML值:使用xmlStar获取XML节点属性,xml,xml-parsing,rss,Xml,Xml Parsing,Rss,我正在尝试使用以下方法从rss提要XML获取XML值: https://www.youtube.com/feeds/videos.xml?channel_id=UC16niRr50-MSBwiO3YDb3RA XML路径是: /feed/entry/title /feed/entry/yt:videoId /feed/entry/media:group/media:thumbnail/@url 我试着跟着这条路走,但什么也提取不出来 我的目标是在/feed/中打印所有/entry。例如:
https://www.youtube.com/feeds/videos.xml?channel_id=UC16niRr50-MSBwiO3YDb3RA
XML路径是:
/feed/entry/title
/feed/entry/yt:videoId
/feed/entry/media:group/media:thumbnail/@url
/feed/
中打印所有/entry
。例如:
France paralysed by biggest strike in years - BBC News
6Mm1M-cdKqU
https://i3.ytimg.com/vi/6Mm1M-cdKqU/hqdefault.jpg
尝试将您的xpath表达式更改为以下表达式,看看是否有效:
//*[local-name()='feed']/*[local-name()='entry']/*[local-name()='title']/text()
//*[local-name()='feed']/*[local-name()='entry']/yt:videoId/text()
//*[local-name()='feed']/*[local-name()='entry']/media:group/media:thumbnail/@url
太好了
xmlsel-t-v“videos.xml
。现在,是否可以将3合1命令组合在一起,以便像我的示例那样嵌套结果?@Azevedo-它可以作为xpath表达式,尽管我不确定xmlstarlet是否支持它;但无论如何还是要尝试一下(警告:它很难看……)/*[local-name()='feed']/*[local-name()='entry']/(*[local-name()='title']/text(),yt:videoId/text(),media:group/media:缩略图/@url)
这很有道理,但xmlstar不会使用嵌套表达式。完美的场景是在json
@Azevedo中转换输出-是的,它似乎只支持XPath1.0。看看你是否能使用希德尔;它支持XPath3.0,并且应该能够接受嵌套表达式。