Мне нужно создать выражение 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>
И мне нужно получить URL-адрес node с атрибутом yt: name, установленным в 'hqdefault'.
Я попробовал с выражением XPath
'./media:group/media:thumbnail[@yt:name='hqdefault']/@url'
но кажется, что указание атрибута namespaced с именем yt: name не работает. При создании запроса я получаю пустой DOMNodeList.
Я обращаюсь к XML в php, поэтому я зарегистрировал пространство имен yt:
registerNamespace( 'yt', 'http://gdata.youtube.com/schemas/2007' );
Thnx заранее