Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP XML如何使用simpleXML提取name=所在的元素_Php_Xml_Parsing_Simplexml - Fatal编程技术网

PHP XML如何使用simpleXML提取name=所在的元素

PHP XML如何使用simpleXML提取name=所在的元素,php,xml,parsing,simplexml,Php,Xml,Parsing,Simplexml,我有一个XML文件,只需要从中提取某些元素。在某个时刻,XML文件可能会被更新,并完全改变元素的显示顺序——但是元素包含一个name=设置 <element> <sub name='this1'>value</sub> <sub name='this2'>value</sub> <sub name='this3'>value</sub> <sub name='this4'>value</

我有一个XML文件,只需要从中提取某些元素。在某个时刻,XML文件可能会被更新,并完全改变元素的显示顺序——但是元素包含一个name=设置

<element>
 <sub name='this1'>value</sub>
 <sub name='this2'>value</sub>
 <sub name='this3'>value</sub>
 <sub name='this4'>value</sub>     
</element>
示例如下:

<element>
 <sub name='this0'>value</sub>
 <sub name='this1'>value</sub>
 <sub name='this2'>value</sub>
 <sub name='this3'>value</sub>     
 <sub name='this4'>value</sub>    
</element>

价值
价值
价值
价值
价值

因此sub[2]将变成this1而不是this2。

您需要的是XPath查询,例如
$myXml->XPath(“/sub[@name=this1]”)
。在这里阅读有关Xpath的更多信息

您需要的是Xpath查询,例如
$myXml->Xpath(“/sub[@name=this1]”
)。在这里阅读更多关于Xpath的信息

,这几乎就是我所需要的。但是我需要提取元素本身中包含的值。所以
this2
应该是
value
$value=current($myXml->xpath(/sub[@name=this1])
只有当查询只返回一个元素时,它才能很好地工作,其余的元素就会丢失。所以这几乎就是我需要的。但是我需要提取元素本身包含的值。所以
this2
应该是
value
$value=current($myXml->xpath(/sub[@name=this1]);
只有当查询只返回一个元素时,它才能很好地工作,其余的元素将丢失。
<element>
 <sub name='this0'>value</sub>
 <sub name='this1'>value</sub>
 <sub name='this2'>value</sub>
 <sub name='this3'>value</sub>     
 <sub name='this4'>value</sub>    
</element>