【发布时间】:2011-10-20 05:19:33
【问题描述】:
我需要创建 XPath 表达式以根据给定命名空间中的属性进行过滤。示例 XML 是:
<feed xmlns='http://www.w3.org/2005/Atom' xmlns:media='http://search.yahoo.com/mrss/'
xmlns:yt='http://gdata.youtube.com/schemas/2007'> ...
<entry>
<media:group>
<media:thumbnail url='http://i.ytimg.com/1.jpg' yt:name='default'/>
<media:thumbnail url='http://i.ytimg.com/2.jpg' yt:name='hqdefault'/>
<media:thumbnail url='http://i.ytimg.com/3.jpg' yt:name='start'/>
<media:thumbnail url='http://i.ytimg.com/4.jpg' yt:name='middle'/>
</media:group>
</entry>
我需要获取属性 yt:name 设置为 'hqdefault' 的节点的 url。
我尝试了 XPath 表达式
'./media:group/media:thumbnail[@yt:name='hqdefault']/@url'
但似乎用 yt:name 指定命名空间属性不起作用。进行查询时,我得到一个空的 DOMNodeList。
我在 php 中访问 XML,所以我注册了 yt 命名空间:
registerNamespace( 'yt', 'http://gdata.youtube.com/schemas/2007' );
提前谢谢
【问题讨论】:
-
“不起作用” - 你需要说出发生了什么。错误信息?