在 PHP 中查询 SimpleXML 结果
我在 PHP 中使用 SimpleXml,它对我来说效果很好。
最近,我在尝试获取特定节点时遇到了问题(我希望这是正确的术语)。
这是一个示例 XML,
<xml>
<attribute>
<item name="fun_level">
<value>Really Fun</value>
</item>
</attribute>
</xml>
因此我使用 simplexml 来获取所有属性,并通过循环运行它们,一切正常。但是,当我想获取具有特定名称的项目的“值”时,我遇到了麻烦。
如果我只是想获取第一个项目的值,这是可行的:
$value = (string)$attribute->item[0]->value;
不幸的是,我想引用一个特定的项目,所以我试图做这样的事情,这是行不通的:
$value = (string)$attribute->item["@name='fun_level'"]->value;
我假设我'我的语法有问题,我引用了项目的名称属性。我应该使用圆括号吗?准备好了吗?我需要对引号做一些不同的事情吗?
感谢您的帮助!
I'm using SimpleXml in PHP and it works well for me.
Recently I had a problem when trying to grab a particular node (I hope that's the right term).
Here's a sample XML
<xml>
<attribute>
<item name="fun_level">
<value>Really Fun</value>
</item>
</attribute>
</xml>
So I'm using simplexml to get all the attributes, and run them through a loop, which all works fine. However, when I want to grab the "value" for an item with a particular name, I'm having trouble.
This works if I'm just trying to grab the value for the first item:
$value = (string)$attribute->item[0]->value;
Unfortunately I want to refer to a specific item, so I'm trying to do something like this, which isn't working:
$value = (string)$attribute->item["@name='fun_level'"]->value;
I'm assuming I'm doing something wrong with my syntax where I refer to the name attribute of the item. Should I be using round brackets? braced? Do I need to do something different with the quotes?
Thanks for the help!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要使用
SimpleXMLElement::xpath()
方法。另外,请参阅描述 SimpleXML 的基本用法的手册页以获取更多示例。
You need to use the
SimpleXMLElement::xpath()
method.Also, see the manual page describing SimpleXML's basic usage for more examples.