为了账号安全,请及时绑定邮箱和手机立即绑定

SimpleXML:选择具有特定属性值的元素

SimpleXML:选择具有特定属性值的元素

PHP
海绵宝宝撒 2019-06-21 16:10:17
SimpleXML:选择具有特定属性值的元素在XML文档中,我有共享名称的元素,但是属性的值定义了它是什么类型的数据,我想从文档中选择所有具有一定值的元素。我是否需要使用XPath(如果需要,您可以建议正确的语法)还是有更优雅的解决方案?下面是一些XML示例:<object>   <data type="me">myname</data>   <data type="you">yourname</data>   <data type="me">myothername</data></object>我想选择所有的内容<data>标记<object>谁的类型是me.PS-我正试图用PHP与NetflixAPI进行接口-这对我的问题来说并不重要,但如果你想提出一个好的/更好的方法来这样做,我会全神贯注的。
查看完整描述

2 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

试试这个XPath:

/object/data[@type="me"]

因此:

$myDataObjects = $simplexml->xpath('/object/data[@type="me"]');

如果object不是文档的根,请使用//object/data[@type="me"]相反。


查看完整回答
反对 回复 2019-06-21
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

我只是做了一个函数来帮我做到这一点,不过它只抓住了第一个结果。你的里程可能不同。

function query_attribute($xmlNode, $attr_name, $attr_value) {
  foreach($xmlNode as $node) { 
    switch($node[$attr_name]) {
      case $attr_value:
        return $node;
    }
  }}

用法:

echo query_attribute($MySimpleXmlNode->Customer, "type", "human")->Name;

(用于下面的XML)

<Root><Customer type="human"><Name>Sam Jones</name></Customer></Root>


查看完整回答
反对 回复 2019-06-21
  • 2 回答
  • 0 关注
  • 385 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信