簡體   English   中英

將php數組轉換為xml

[英]convert a php array to xml

我有一個問題,這使我發瘋了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( ) ;

         ?>

語音響應:

警告:SimpleXMLElement :: __ construct()[simplexmlelement .-- construct]:實體:第1行:解析器錯誤:預期的開始標記,在C:\\ Program Files(x86)\\ EasyPHP-5.3.9 \\ www中找不到“ <” \\ fbcnx.php在第4行

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

警告:在第4行的C:\\ Program Files(x86)\\ EasyPHP-5.3.9 \\ www \\ fbcnx.php中,SimpleXMLElement :: __ construct()[simplexmlelement .-- construct]:^

致命錯誤:C:\\ Program Files(x86)\\ EasyPHP-5.3.9 \\ www \\ fbcnx.php:4中未捕獲的異常'Exception',消息為'String無法解析為XML',堆棧跟蹤:#0 C:\\程序文件(x86)\\ EasyPHP-5.3.9 \\ www \\ fbcnx.php(4):SimpleXMLElement-> __ construct('

SimpleXMLElement構造函數中的?>引起了問題。 傳遞給類的構造函數的字符串必須是XML文檔的根元素或xml文件的路徑,請參見http://www.php.net/manual/zh/simplexmlelement.construct.php

$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 ... ?>聲明。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM