名前空間 ( XML 名前空間thumb
を参照)に属する要素を見つけようとしています。という名前のタグではありません。isc
isc:thumb
phpQuery は、あなたがしようとしているのとは異なり、名前空間付きの要素を喜んで照会できます。代わりに、単にタグをフォームnamespace|tagname
(つまりisc|thumb
) で指定します。名前空間を認識できるようにするには、名前空間を phpQuery の XPath ハンドラ (単なるDOMXPath
オブジェクト) に登録する必要があることにも注意してください。
サンプル XML ドキュメントを使用した簡単な例を次に示します (もちろん、独自の XML を使用し、正しい名前空間 URI を指定してください)。
phpQuery::newDocumentXML('<root xmlns:isc="urn.example.isc">
<isc:thumb><![CDATA[http://example.com/foo_thumb.jpg]]></isc:thumb>
<isc:thumb><![CDATA[http://example.com/bar_thumb.jpg]]></isc:thumb>
</root>
');
phpQuery::getDocument()->xpath->registerNamespace('isc', 'urn.example.isc');
foreach ( pq("isc|thumb") as $thumbnail ) {
echo pq( $thumbnail )->text() . PHP_EOL;
}
どの出力:
http://example.com/foo_thumb.jpg
http://example.com/bar_thumb.jpg