simpleXMLElement找到节点

时间:2014-08-25 22:17:11

标签: php xml xpath simplexml

我在xml-element中有以下结构:

<assets>

    <icon id="1" type="grave" x="586" y="477">
        <text short="hello world" tooltip="" tteng=" "/>
    </icon>

</assets>

现在,使用PHP,我尝试使用node查找此特定xpath。我必须通过<text>代码段中的短值找到此节点。

所以,我需要得到

的父母
<text="hello world" ... >

我正在寻找php.net,但它并没有给我带来太多帮助。

我试过的是这个:

$node = $xml->xpath('//text="hello world"');

但是没有做到这一点。

关于来自 marc-b 的信息,我将以下内容添加到我的函数中:

public static function loadValuesFromNode($fileName, $name) {

    var_dump($name); // echoes "hello world"

    $xml = simplexml_load_file(self::$xmlDir . "/" . $fileName); // correct path, already tested
    $node = $xml->xpath('//text[@short="'.$name.'"]');

    var_dump($node); // empty -> (array(0) { }

}

如果我将xpath更改为:

'[@short="'.$name.'"'] (so without the text-thingy)

它返回&#34; false&#34 ;;

提前致谢:)

1 个答案:

答案 0 :(得分:1)

要测试属性的内容,您需要

//node[@attribute="value"]

所以

//text[@short="hello world"]