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]: ?> in 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 でメッセージ「String could not be parsed as XML」を含む例外「Exception」がキャッチされませんでした: スタック トレース: #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 は常に、ISO-8859-1 でエンコードされた文字列ではなく、UTF-8 でエンコードされた文字列を受け入れることに注意してください。必要に応じutf8_encodeて、ISO-8859-1 文字列を UTF-8 に変換するために使用します。

生成された XML が UTF-8 エンコーディングではなく ISO-8859-1 エンコーディングを使用することが重要な場合は、<?xml ... ?>宣言をそのままにしておきます。

于 2013-06-11T00:33:58.400 に答える