Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用xmlStar获取XML节点属性_Xml_Xml Parsing_Rss - Fatal编程技术网

使用xmlStar获取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。例如:

我正在尝试使用以下方法从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
。例如:

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,并且应该能够接受嵌套表达式。