SimpleXMLElement->registerXPathNamespace()
(PHP 5 >= 5.2.0)
SimpleXMLElement->registerXPathNamespace() — 次㮠XPath クエリ用㮠prefix/ns コンテã‚ストを作æˆã™ã‚‹
説明
次㮠XPath クエリ用㮠prefix/ns コンテã‚ストを作æˆã—ã¾ã™ã€‚特ã«ã“ã‚ŒãŒæœ‰ç”¨ãªã®ã¯ã€ XML ドã‚ュメントã®æ供者ãŒåå‰ç©ºé–“プレフィックスを変更ã—ãŸã‚ˆã†ãªå ´åˆã§ã™ã€‚ registerXPathNamespace ã¯ãƒ—レフィックスを作æˆã—ã¦åå‰ç©ºé–“ã«é–¢é€£ä»˜ã‘〠ãã®ãƒ—レフィックスã§åå‰ç©ºé–“ã®ãƒŽãƒ¼ãƒ‰ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãるよã†ã«ã—ã¾ã™ã€‚ æ供者å´ãŒãƒ—レフィックスを変更ã—ãŸã¨ã—ã¦ã‚‚ã€ã‚³ãƒ¼ãƒ‰ã‚’書ãæ›ãˆã‚‹å¿…è¦ã¯ã‚ã‚Šã¾ã›ã‚“。
パラメータ
- prefix
-
ns ã§æŒ‡å®šã—ãŸåå‰ç©ºé–“ã¸ã® XPath クエリã§ä½¿ç”¨ã™ã‚‹ã€ åå‰ç©ºé–“プレフィックス。
- ns
-
XPath クエリã§ä½¿ç”¨ã™ã‚‹åå‰ç©ºé–“。 ã“れ㯠XML ドã‚ュメントã§ä½¿ç”¨ã—ã¦ã„ã‚‹åå‰ç©ºé–“ã¨ä¸€è‡´ã—ã¦ã„ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。 一致ã—ã¦ã„ãªã„å ´åˆã€prefix を使用ã—㟠XPath クエリã¯ä½•ã‚‚çµæžœã‚’è¿”ã—ã¾ã›ã‚“。
返り値
æˆåŠŸã—ãŸå ´åˆã« TRUE ã‚’ã€å¤±æ•—ã—ãŸå ´åˆã« FALSE ã‚’è¿”ã—ã¾ã™ã€‚
例
Example#1 XPath クエリã§ä½¿ç”¨ã™ã‚‹åå‰ç©ºé–“プレフィックスã®è¨å®š
<?php
$xml = <<<EOD
<book xmlns:chap="https://example.org/chapter-title">
<title>My Book</title>
<chapter id="1">
<chap:title>Chapter 1</chap:title>
<para>Donec velit. Nullam eget tellus vitae tortor gravida scelerisque.
In orci lorem, cursus imperdiet, ultricies non, hendrerit et, orci.
Nulla facilisi. Nullam velit nisl, laoreet id, condimentum ut,
ultricies id, mauris.</para>
</chapter>
<chapter id="2">
<chap:title>Chapter 2</chap:title>
<para>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin
gravida. Phasellus tincidunt massa vel urna. Proin adipiscing quam
vitae odio. Sed dictum. Ut tincidunt lorem ac lorem. Duis eros
tellus, pharetra id, faucibus eu, dapibus dictum, odio.</para>
</chapter>
</book>
EOD;
$sxe = new SimpleXMLElement($xml);
$sxe->registerXPathNamespace('c', 'https://example.org/chapter-title');
$result = $sxe->xpath('//c:title');
foreach ($result as $title) {
echo $title . "\n";
}
?>
上ã®ä¾‹ã® XML ドã‚ュメントã§ã¯ã€ãƒ—レフィックス chap ã§åå‰ç©ºé–“を指定ã—ã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¦ãŠãã¾ã—ょã†ã€‚ä»®ã«ã€ã“ã®ãƒ‰ã‚ュメント (ã‚ã‚‹ã„ã¯ã‚ˆãä¼¼ãŸåˆ¥ã®ãƒ‰ã‚ュメント) ãŒä»¥å‰ã«åŒã˜åå‰ç©ºé–“ã«å¯¾ã—ã¦ãƒ—レフィックス c を使用ã—ã¦ã„ãŸã¨ã—ã¾ã—ょã†ã€‚プレフィックスãŒå¤‰ã‚ã£ãŸæ™‚点ã§ã€ ã“ã‚Œã¾ã§ã® XPath クエリã¯æ£ã—ã„値を返ã•ãªã„よã†ã«ãªã‚Šã¾ã™ã€‚ ãã—ã¦ã‚¯ã‚¨ãƒªã«å¯¾ã—ã¦ä½•ã‚‰ã‹ã®å¤‰æ›´ãŒå¿…è¦ã¨ãªã‚Šã¾ã™ã€‚ registerXPathNamespace を使用ã™ã‚‹ã¨ã€ ä»®ã«åå‰ç©ºé–“プレフィックスãŒå¤‰æ›´ã•ã‚ŒãŸå ´åˆã§ã‚‚クエリã®å¤‰æ›´ã™ã‚‹å¿…è¦ãŒãªããªã‚Šã¾ã™ã€‚