(PHP 5, PHP 7, PHP 8)
SimpleXMLElement::xpath — XML データに Xpath クエリを実行する
xpathメソッドは、
XPath expressionにマッチする
SimpleXML ノードを検索します。
expressionXPath パス。
SimpleXMLElement オブジェクトの array を返します。
エラーが発生した場合は null または false を返します。
PHP 8.5.0 以降、XPath 式がノードの集合以外 (論理値や数値など) を返した場合は、
黙って空の配列を返すのではなく、E_WARNING が発生して
false を返します。
| バージョン | 説明 |
|---|---|
| 8.5.0 |
XPath 式がノードの集合以外を返した場合、
E_WARNING が発生し、false を返すようになりました。
これより前のバージョンでは、黙って空の配列を返していました。
|
例1 Xpath
<?php
$string = <<<XML
<a>
<b>
<c>text</c>
<c>stuff</c>
</b>
<d>
<c>code</c>
</d>
</a>
XML;
$xml = new SimpleXMLElement($string);
/* <a><b><c> を探します */
$result = $xml->xpath('/a/b/c');
foreach ($result as $node) {
echo '/a/b/c: ',$node,"\n";
}
/* 相対パスでも動作します... */
$result = $xml->xpath('b/c');
foreach ($result as $node) {
echo 'b/c: ',$node,"\n";
}
?>上の例の出力は以下となります。
/a/b/c: text /a/b/c: stuff b/c: text b/c: stuff
これら二つの結果は同じであることに注意してください。