如何使用属性值获取节点

时间:2014-06-16 10:35:11

标签: xml

我希望子节点基于属性值..

我该如何检索它们?

任何人都可以帮助我吗?

输出:

文字东西..

但我需要

<c>text</c>
<c>stuff</c>

  <?php
$string = <<<XML
<a>
<b id="1">
<c>text</c>
<c>stuff</c>
</b>
<b name="title">
<c>code</c>
</b>
<d>
<c>item</c>
</d>
</a>
XML;
$xml = new SimpleXMLElement($string);

    function getChildXML($xml, $tag, $id)
    {
        $output = '';
        $doc = new DOMDocument();
        $doc->loadXML($xml);
        $xpath = new DOMXpath($doc);
        $elements = $xpath->query($tag . "[@id='$id']");
        foreach($elements as $element)
            $output .= $doc->saveXML($element);
        return $output;
    }

    echo getChildXML($string, 'b', 1);

?>

1 个答案:

答案 0 :(得分:0)

我认为您正在获得正确的输出,但如果您在浏览器中显示它,请使用此

echo htmlentities(getChildXML($string, 'b', 1));