can';不能通过PHP读取XML

can';不能通过PHP读取XML,php,xml,parsing,Php,Xml,Parsing,我找不到原因,只看到以下错误消息。 输入不正确UTF-8,请指示编码!字节:0x00 0x5D 0x5D 0x3E 以下是我的php代码 $reader2 = new XMLReader(); $reader2->XML($xmlstring); $user_data=""; while ($reader2->read()) { if ($reader2->name == "user_id" && $reader2->nodeType == X

我找不到原因,只看到以下错误消息。 输入不正确UTF-8,请指示编码!字节:0x00 0x5D 0x5D 0x3E

以下是我的php代码

$reader2 = new XMLReader();
$reader2->XML($xmlstring);
$user_data="";

while ($reader2->read()) {

    if ($reader2->name == "user_id" && $reader2->nodeType == XMLReader::ELEMENT) {
        $reader2->read();
        $user_data .=$reader2->value;
    }


}
$reader2->close();
以下是XML数据

<?xml version="1.0" encoding="UTF-8" ?>
<SOAP:Envelope xmlns:SOAP="http://www.w3.org/2003/05/soap-envelope" >
    <SOAP:Body >
<user_id>1234567890</user_id>
<greeting_name><![CDATA[ABCDEF ..yl/�]]></greeting_name>
</SOAP:Body>
</SOAP:Envelope>

1234567890

我尝试了很多方法,但仍然找不到解决办法。问候语标记值可以是中文或英文单词。

并非所有字节序列都以utf-8编码字符。有些序列没有任何意义,或者——坦率地说——是错误的。xml解析器在输入文档中发现了这样一个错误的序列(声称是正确的utf-8编码),并对此进行了投诉。xml文档需要修复。

该CDATA的末尾有一个空字节。修复生成该XML的任何内容,使其不会输出空字节,或者使用str_replace()将其从文件中删除,并希望一切顺利。