Php SimpleXMLElement在数组中按属性查找
我试图从我接收到的SimpleXMLElement中筛选节点,有两个节点:Accessibility和Activity这些属性嵌套在我的$xml中 例如,我需要获取id为“Activity”的节点的节点数据 我试过的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')这将返回一个空数组,因此我不知道
- 当我尝试
时,它返回数组中包含两个元素的第一个元素,而不是数组$xml->symbol
- 当我尝试
时,它返回的结果与“$xml”返回的结果完全相同$xml->children()
- 使用Xpath
test=$xml->Xpath('/symbol')代码>这将返回一个空数组,因此我不知道如何更深入地查看
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"]'