0

我有一个问题,这让我发疯了 2 天,我在 php 中有一个包含多个子表的关联数组,我想把它变成 xml,尤其是 simplexml,但我认为我对所有重音特殊字符都有问题,等他们告诉我改变编码“ISO-8859-1”,但它不起作用,你能帮帮我吗?

<?php
  header('Content-type: text/html');
  $xml_student_info = new SimpleXMLElement('<?xml version="1.0" encoding="ISO-8859-1" ?>');
// function defination to convert array to xml

  function array_to_xml($student_info, $xml_student_info) {
   foreach($student_info as $key => $value) {
    if(is_array($value)) {
        if(!is_numeric($key)){
            $subnode = $xml_student_info->addChild("$key");
            array_to_xml($value, $subnode);
        }
        else{
            array_to_xml($value, $xml_student_info);
        }
    }
    else {
        $xml_student_info->addChild($key,$value);
    }
}
return $xml_student_info; }
    //function call to convert array to xml
    echo array_to_xml($wall,$xml_student_info)->asXML();
     exit( ) ;

         ?>

Et voici la réponse:

警告:SimpleXMLElement::__construct() [simplexmlelement.--construct]:实体:第 1 行:解析器错误:需要开始标记,在 C:\Program Files (x86)\EasyPHP-5.3.9\www 中找不到“<” \fbcnx.php 在第 4 行

警告:SimpleXMLElement::__construct() [simplexmlelement.--construct]: ?> 在 C:\Program Files (x86)\EasyPHP-5.3.9\www\fbcnx.php 第 4 行

警告:SimpleXMLElement::__construct() [simplexmlelement.--construct]: ^ in C:\Program Files (x86)\EasyPHP-5.3.9\www\fbcnx.php 位于第 4 行

致命错误:C:\Program Files (x86)\EasyPHP-5.3.9\www\fbcnx.php:4 中未捕获的异常 'Exception' 和消息 'String could not be parsed as XML' 堆栈跟踪:#0 C:\程序文件 (x86)\EasyPHP-5.3.9\www\fbcnx.php(4): SimpleXMLElement->__construct('

4

2 回答 2

0

?>SimpleXMLElement 构造函数中的 导致问题。您传递给类的构造函数的字符串需要是 XML 文档的根元素或 xml 文件的路径,请参见http://www.php.net/manual/en/simplexmlelement.construct.php

于 2013-06-11T00:32:59.303 回答
0
$xml_student_info = new SimpleXMLElement('<?xml version="1.0" encoding="ISO-8859-1" ?>');

SimpleXMLElement:__construct需要格式良好的 XML 字符串。这应该有效:

$xml_student_info = new SimpleXMLElement('<studentinfo/>');

请注意,SimpleXML 始终接受 UTF-8 编码的字符串,而不是 ISO-8859-1 编码的字符串。如有必要,用于utf8_encode将 ISO-8859-1 字符串转换为 UTF-8。

如果生成的 XML 使用 ISO-8859-1 编码而不是 UTF-8 编码很重要,请保留<?xml ... ?>声明。

于 2013-06-11T00:33:58.400 回答