30

こんにちは私は利用可能なコースを表示するWebサイトにajaxを使用していますが、xml(コースの詳細があります)を読んでいて、入力(コース名の外)と等しい場合にノード値(コース名)を取得するという問題がありますテキスト(コースの説明)を表示しています。今、私はそれを正しいコース名(xmlファイル内)に到達するようにトレースしていますが、それを入力コース名と比較している間、まったく比較していません。ある時点で、xmlファイルをロードしてエコーします:

$doc->load('data/ICT.xml'); 
echo"$doc";

エラーが発生します

キャッチ可能な致命的なエラー:23行目の/home/students/....../www/htdocs/client/unit_details.phpで、クラスDOMDocumentのオブジェクトを文字列に変換できませんでした

これから私が理解したのは、必要なデータを取得して使用できるように、xml domオブジェクトを文字列に変換する必要があるということです。本当ですか?もしそうなら、誰かがそうする方法を教えてもらえますか(他の関数などのように)事前に感謝します:-)

4

4 に答える 4

36

オブジェクトはDOMDocument文字列として使用できません。

DOMDocumentオブジェクトを XML 文字列として表示する方法を次に示します。

echo $doc->saveXML();
于 2012-10-20T12:23:57.733 に答える
16

DOMDocumentmethod がSaveHTML()あり、必要なことを正確に行うように設計されています。

次の方法でドキュメント全体を表示できます。

$doc->saveHTML();

または特定のノードのみ:

$doc->saveHTML( $bodyNode);

DOMDocumentまた、XML の印刷方法を拡張するためのいくつかのオプションも提供します。たとえば、次のとおりです。

于 2012-10-20T12:25:56.877 に答える
5

これを試して:

$xml = $doc->saveXML($doc->documentElement);
于 2012-10-20T12:34:51.627 に答える
-3

型キャストを使用できます

$doc->load('data/ICT.xml'); 
$doc2=(string)$doc;
echo $doc2;

または、PHP関数を使用できます

strval();

この関数は、渡されたパラメータの文字列値を返します。

于 2012-10-20T12:27:50.947 に答える