gpt4 book ai didi

php xpath 获取属性等于的节点

转载 作者:可可西里 更新时间:2023-11-01 00:11:06 24 4
gpt4 key购买 nike

我有一个 xml 如何获取 levelone 中的节点,该节点具有名为 myatt 的属性,其值为 a 然后访问它是我的。我尝试引用其他帖子使其工作,但它似乎不起作用我的 xpath 出了什么问题

$this->myXmlObj->xpath("//levelone[myfield[attributes/myatt='a]]]"));

<myxml>
<levelone>
<myfield myatt="a" myval="aa" />
<myfield myatt="b" myval="bb" />

</levelone>
<leveltwo>
<myfield myatt="c" myval="dd" />
<myfield myatt="c" myval="dd" />
</leveltwo>
</myxml>

编辑1

array
0 =>
object(SimpleXMLElement)[41]
public '@attributes' =>
array
'myval' => string 'a' (length=40)

编辑2

    $myVar = $this->myXmlObj->xpath("//levelone/myfield[@myatt='a']");
$myOutput = ((string)$myVar[0]->attributes()->myVal;

最佳答案

XPATH 中的属性使用 @attr 语法引用。因此,您可以使用以下 xpath 检索 aa

//levelone/myfield[@myatt='a']/@myval

这意味着,获取属性 myatt 等于 'a' 的所有 myfield 元素。然后,从中选择它们的 myval 属性的值。请注意,这可能是多个结果。

测试 XPATH 表达式的方便位置是 http://chris.photobooks.com/xml/default.htm .

关于php xpath 获取属性等于的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5587999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com