本帖最后由 MMDD0827 于 2011-06-16 15:34:25 编辑

解决方案 »

  1.   

    看看 手册 中例子
    $xml = simplexml_load_string($string);
    foreach($xml->foo[0]->attributes() as $a => $b) {
        echo $a,'="',$b,"\"\n";
    }
      

  2.   

    可以这样遍历$xml = simplexml_load_string("<InstallPolicyConfig PolicyId=\"PolicyId\" Value=\"Value\" Type=\"Type\" IsAllow=\"IsAllow\"/>");foreach(array_shift(get_object_vars($xml)) AS $key => $val)
    {
    echo $key, '=>', $val;
    }
      

  3.   

    貌似你那种数据结构用simplexml_load_string出来的是会有个@吧,要是成对的像<name></name>这样的标签就不会有,应该影响不大,用楼上的方法就可去掉。
      

  4.   

    我的数据本来就不是完整的xml文件啊, 就是n条
    <InstallPolicyConfig PolicyId="PolicyId" Value="Value" Type="Type" IsAllow="IsAllow"/>
    这个 组成的一个文件。 我要把每条中的属性取出来,然后取它的json编码的格式是这样的:
    {"PolicyId":"8df3ecf1-9b05-4ae3-86a4-0c9f26487c9","Value":"C0A86F6F","Type":"IP","IsAllow":false}
      

  5.   

    我遇到过这问题,不过我当时返回的是数组,直接$a['@attributes']['Value']就可以取到值
      

  6.   

    我只是想取到那个属性的数组 ,然后直接json_encode 就好了,能得到上边的那种格式就好了~ 
      

  7.   

    我记得当时直接用取attributes方法还是上面的结果,我最后直接循环了一遍重新赋值
      

  8.   

    直接这样就行啦~  谢谢大家的帮忙啦~~
    $xml = simplexml_load_string("<InstallPolicyConfig PolicyId=\"PolicyId\" Value=\"Value\" Type=\"Type\" IsAllow=\"IsAllow\"/>");echo json_encode(array_shift(get_object_vars($xml)));只不过这样会出现下面的提示:Debug Strict (PHP 5): /PHP/tests/test.php line 51 - Only variables should be passed by reference(什么只能通过引用传递变量什么的……  不是太明白~)