Php SimpleXMLElement在数组中按属性查找

Php SimpleXMLElement在数组中按属性查找,php,xml,xpath,simplexml,Php,Xml,Xpath,Simplexml,我试图从我接收到的SimpleXMLElement中筛选节点,有两个节点:Accessibility和Activity这些属性嵌套在我的$xml中 例如,我需要获取id为“Activity”的节点的节点数据 我试过的 当我尝试$xml->symbol时,它返回数组中包含两个元素的第一个元素,而不是数组 当我尝试$xml->children()时,它返回的结果与“$xml”返回的结果完全相同 使用Xpathtest=$xml->Xpath('/symbol')这将返回一个空数组,因此我不知道

我试图从我接收到的SimpleXMLElement中筛选节点,有两个节点:AccessibilityActivity这些属性嵌套在我的$xml中

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

我试过的
  • 当我尝试
    $xml->symbol
    时,它返回数组中包含两个元素的第一个元素,而不是数组

  • 当我尝试
    $xml->children()
    时,它返回的结果与“$xml”返回的结果完全相同

  • 使用Xpath
    test=$xml->Xpath('/symbol')这将返回一个空数组,因此我不知道如何更深入地查看

SimpleXml
object(simplexmlement)#137(1){
[“符号”]=>
阵列(2){
[0]=>
对象(SimpleXMLElement)#135(2){
[“@attributes”]=>
阵列(2){
[“查看框”]=>
字符串(9)“0 0 24 24”
[“id”]=>
字符串(13)“可访问性”
对象(simplexmlement)#142(2){
[“@attributes”]=>
阵列(2){
[“查看框”]=>
字符串(9)“0 0 24 24”
[“id”]=>

字符串(8)“activity”选择属性为
id
等于
“activity”
symbol
节点

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

包含XML时,请包含原始XML源代码,而不是SimpleXMLElements的输出。添加源代码,谢谢@NigelRen@JaSON我添加了源代码,实际上我收到的是SimpleXmlElements已经解析过的XML。您的意思是想要类似于
xpath('/*[name()=“symbol”和@id=“activity”]”的东西吗
?确实如此,如果您添加一个答案,我会将其标记为正确,谢谢!我不知道XPath有所有这些函数。
<?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>
'//*[name()="symbol" and @id="activity"]'