Forum und email

SimpleXMLElement->registerXPathNamespace()

(PHP 5 >= 5.2.0)

SimpleXMLElement->registerXPathNamespace() — 次㮠XPath クエリ用㮠prefix/ns コンテキストを作æˆã™ã‚‹

説明

SimpleXMLElement
bool registerXPathNamespace ( string $prefix , string $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 を使用ã™ã‚‹ã¨ã€ ä»®ã«åå‰ç©ºé–“プレフィックスãŒå¤‰æ›´ã•ã‚ŒãŸå ´åˆã§ã‚‚クエリã®å¤‰æ›´ã™ã‚‹å¿…è¦ãŒãªããªã‚Šã¾ã™ã€‚