使用php simplexml_load_file进行XML解析

时间:2016-09-18 06:45:25

标签: php xml xml-parsing

我的xml文件example.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<Declaration>
        <ID>345678</ID>
      <TransID>1473909194263</TransID>
    <Time>2016-02-24T22:13:15</Time>
<Groups>
   <Group>
     <Name>Aaron</Name>
       <SelectedFields/>
   </Group>
</Groups>
<Scores/>
   <RelatedVariables>
      <RelatedVariable dataType="Number">
         <Value>5555</Value>
       </RelatedVariable>
      <RelatedVariable dataType="Number">
         <Value>9999</Value>
      </RelatedVariable>
   </RelatedVariables>
</Declaration>

我的php代码如下:

$xml=simplexml_load_file("example.xml") or die("Error: Cannot create object");

echo $xml->ID;                      //Gives 345678

echo $xml->Groups->Group->Name;     // Gives Group->Name rather than Aaron

问题:
当我使用PHP simplexml_load_file方法获取值$ xml-&gt; ID时 通过上面的代码,它给了345678.但是当我试图得到它的价值时 $ xml-&gt; Groups-&gt; Group-&gt;将解析器命名为confused并给出 Group-&gt;名字而不是Aaron。解析器混淆了 小组和小组我认为。什么是正确的代码来获得名称亚伦

1 个答案:

答案 0 :(得分:0)

我们已经尝试重现您的问题,但仍然让Aaron在第三行。 如果您仍然面临同样的问题,请检查以下代码,它将解决您的问题。

$xml=simplexml_load_file("example.xml") or die("Error: Cannot create object");
$xml = json_decode(json_encode($xml),true);
echo $xml['ID']; //Gives 345678
echo $xml['Groups']['Group']['Name']; //Gives Aaron