SimpleXMLElement 按数组中的属性查找

SimpleXMLElement find by attribute in array

我正在尝试从 SimpleXMLElement 中过滤一个节点,这是我收到的,有两个节点:AccessibilityActivity 这些属性嵌套在我的 $xml.

我需要获取id为'Activity'的节点的节点数据,例如

我试过的

SimpleXml

object(SimpleXMLElement)#137 (1) {
  ["symbol"]=>
  array(2) {
    [0]=>
    object(SimpleXMLElement)#135 (2) {
      ["@attributes"]=>
      array(2) {
        ["viewBox"]=>
        string(9) "0 0 24 24"
        ["id"]=>
        string(13) "accessibility" <--------------- 
      }
    }
    [1]=>
    object(SimpleXMLElement)#142 (2) {
      ["@attributes"]=>
      array(2) {
        ["viewBox"]=>
        string(9) "0 0 24 24"
        ["id"]=>
        string(8) "activity" <--------------- 
      }
    }
  }
}

XML 来源

<?xml version="1.0" encoding="utf-8"?>
<svg xmlns="http://www.w3.org/2000/svg">
    <symbol viewBox="0 0 24 24" id="accessibility">
        <path d="M2 16L2.8 14M6 16L5.2 14M5.2 14L4 11L2.8 14M5.2 14H2.8"/>
        <path d="M20 13L22 10M20 13L18 10M20 13L20 16"/>
        <path d="M8 12L10 10V16"/>
        <path d="M13 12L15 10V16"/>
    </symbol>
    <symbol viewBox="0 0 24 24" id="activity">
        <polyline points="21 14 18 14 15 7 10 17 7 11 5 14 3 14"/>
    </symbol>
</svg>

到 select symbol 属性 id 等于 "activity" 的节点尝试 XPath

'//*[name()="symbol" and @id="activity"]'