//需要指定前缀$str = <<<TEST
<monster xmlns:xiyou="http://www.w3.org/2001/XMLSchema">
<xiyou:姓名 type='text'>孙悟空</xiyou:姓名>
<xiyou:技能 type='text'>火眼金睛</xiyou:技能>
<xiyou:年龄 type='text'>638 </xiyou:年龄>
</monster>
TEST;
$xml = simplexml_load_string($str, NULL, 0, 'xiyou', true);
echo $xml->姓名;

解决方案 »

  1.   

    还是没有办法解决,按照楼上的代码,提示非utf-8编码,加了iconv后还是没有办法显示,不过加个同样命名空间的英文节点可以读取,代码如下:
    <?php$str = <<<TEST
    <monster xmlns:xiyou="http://www.w3.org/2001/XMLSchema">
    <xiyou:姓名 type='text'>孙悟空</xiyou:姓名>
    <xiyou:技能 type='text'>火眼金睛</xiyou:技能>
    <xiyou:年龄 type='text'>638 </xiyou:年龄>
    <xiyou:age type ='text'>648</xiyou:age>
    </monster>
    TEST;$str = iconv('gb2312','utf-8',$str);
    $xml = simplexml_load_string($str, NULL, 0, 'xiyou', true);
    echo $xml->姓名;
    echo $xml->age;
    ?>返回结果为648,没办法了。
    随便问下jakey9826 ,你的PHP是那个版本的?
      

  2.   

    你直接创建个utf-8格式的php文件,然后,将上述代码复制过去就行了.你用iconv转换的只是xml,但你echo $xml->姓名;这句中 姓名也得是utf-8的才成.
    这和你转的xml是一个道理.另外,用中文当节点,本身就不符合习惯.
      

  3.   

    OK!!解决了,谢谢jakey9826 ,高手就是高手,一出手就解决了问题,原来我是用Zend for Eclipse调试的,可能是Zend for Eclipse的字符集没有设置好,有学到了,谢谢!!