sig*_*nce 4 php xpath simplexml
即 - 我想使用类似xpath表达式"// banana/@ color"和以下示例xml返回字符串"yellow"...
<fruits>
<kiwi color="green" texture="hairy"/>
<banana color="yellow" texture="waxy"/>
</fruits>
$fruits = simplexml_load_string(
'<fruits>
<kiwi color="green" texture="hairy"/>
<banana color="yellow" texture="waxy"/>
</fruits>');
print_r($fruits->xpath('//banana/@color'));
Run Code Online (Sandbox Code Playgroud)
产生
Array
(
[0] => SimpleXMLElement Object
(
[@attributes] => Array
(
[color] => yellow
)
)
)
Run Code Online (Sandbox Code Playgroud)
而我更喜欢......
Array
(
[0] => SimpleXMLElement Object
(
[0] => yellow
)
)
Run Code Online (Sandbox Code Playgroud)
...所以我不需要在我写的应用程序中写一个特殊的案例.
非常感谢!:)
我只是给你的测试一个镜头,因为我很好奇,我发现它确实yellow
在转换为字符串时产生字符串值.
$fruits = simplexml_load_string(
'<fruits>
<kiwi color="green" texture="hairy"/>
<banana color="yellow" texture="waxy"/>
</fruits>');
$found = $fruits->xpath('//banana/@color');
echo $found[0];
Run Code Online (Sandbox Code Playgroud)
看起来这只是SimpleXmlElement
属性节点的表示方式.因此,您可以使用它,就(string) $found[0]
好像您不直接打印/回显它一样.
当然,如果你依赖于剩余的价值,SimpleXMLElement
那么我认为这可能是一个问题.但我认为只要记住在以后使用节点时转换为字符串仍然是可行的.
如果您确实需要一个支持属性作为节点的节点的详细界面,那么您可能只想切换到DOMDocument
.您的代码将变得更加冗长,但实现更加清晰.
归档时间: |
|
查看次数: |
10900 次 |
最近记录: |