PHP SimpleXML解析器子级

PHP SimpleXML解析器子级,php,xml-parsing,simplexml,Php,Xml Parsing,Simplexml,我如何使用PHP SimpleXML解析器响应John和Mike?当两者都有不同的项目时 <DATA> <KEY> <item0> <RTS>John</RTS> </item0> <item1> <RTS>Mike</RTS> </item1> </KEY> </DATA> 约翰 迈克

我如何使用PHP SimpleXML解析器响应John和Mike?当两者都有不同的项目时

<DATA>
  <KEY>
    <item0>
      <RTS>John</RTS>
    </item0>
    <item1>
      <RTS>Mike</RTS>
    </item1>
  </KEY>
</DATA>

约翰
迈克

这是可行的,但如果您尝试使用$xml=simplexml\u load\u文件(“example.xml”)或die(“错误:对象创建失败”)

它不适用于简单的加载文件

<?php
$xml =
"<?xml version='1.0' encoding='UTF-8'?>
<DATA>
<KEY>
<item0>
<RTS>John</RTS>
</item0>
<item1>
<RTS>Mike</RTS>
</item1>
</KEY>
</DATA>";

function xml2array($xml)
{
    $arr = array();

    foreach ($xml as $element)
    {
        $tag = $element->getName();
        $e = get_object_vars($element);
        if (!empty($e))
        {
            $arr[$tag] = $element instanceof SimpleXMLElement ? xml2array($element) : $e;
        }
        else
        {
            $arr[$tag] = trim($element);
        }
    }

    return $arr;
}

$xml = new SimpleXMLElement($xml);
$data = xml2array($xml);
foreach ($data as $key => $value) {
   foreach ($value as $key1 => $val1) {
       echo $val1['RTS']; echo "<br/>";
   }
}
?>
$value){
foreach($key1=>$val1){
echo$val1['RTS'];echo“
”; } } ?>



效果很好,但当我加载文件时,它不起作用。效果很好,但当我添加此文件时,它不起作用$xml=simplexml_load_文件(“file.xml”)或die(“错误:对象创建失败”);检查您的apache配置<代码>phpinfo()。是否安装了libxml?是的,它的安装效果很好,但是如果您尝试使用:$xml=simplexml\u load\u file(“sample.xml”)或die(“错误:对象创建失败”);它不会工作,但当我加载文件时它不工作。它工作得很好,但当我添加它时它不工作$xml=simplexml_load_文件(“file.xml”)或die(“错误:对象创建失败”);检查您的apache配置<代码>phpinfo()。是否安装了libxml?是的,它的安装效果很好,但是如果您尝试使用:$xml=simplexml\u load\u file(“sample.xml”)或die(“错误:对象创建失败”);它不起作用。你能提供你迄今为止尝试过的代码吗?只是添加了代码。你能提供你迄今为止尝试过的代码吗?只是添加了代码
<?php

    /// load your external xml file here////
    if (file_exists('file.xml')) {
        $xml = simplexml_load_file('file.xml');

        // $xml = new SimpleXMLElement($xml);
        $data = xml2array($xml);
        foreach ($data as $key => $value) {
           foreach ($value as $key1 => $val1) {
               echo $val1['RTS']; echo "<br/>";
           }
        }
    } else {
        exit('Failed to open test.xml.');
    }
    function xml2array($xml)
    {
        $arr = array();

        foreach ($xml as $element)
        {
            $tag = $element->getName();
            $e = get_object_vars($element);
            if (!empty($e))
            {
                $arr[$tag] = $element instanceof SimpleXMLElement ? xml2array($element) : $e;
            }
            else
            {
                $arr[$tag] = trim($element);
            }
        }

        return $arr;
    }

?>