ホームページ  >  記事  >  バックエンド開発  >  php XML入門教材_PHPチュートリアル

php XML入門教材_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:32:42908ブラウズ

原因:
今日、プロジェクトに取り組んでいるときに問題が発生しました。このサイトが完成しただけではなく、誰かが保守していることを示すために、ホームページ上の写真を動的に更新する必要があります。さて、要件は決まったので、それを実装するにはどうすればよいでしょうか? !
私の考えは次のとおりです:
画像の保存場所:フォルダに入れてください; 画像の種類:画像であればアップロードして表示できます; 画像の名前:元の名前は少しあります。不規則なので名前を変更する必要があります。
表示位置: 画像に対応する ID を指定する必要があります。この ID は固定であり、画像と 1 対 1 に対応する必要があります。したがって、レコード間に 1 対 1 の対応関係を持つリレーションシップ ファイルがあり、CSV ファイル、データベース レコードを選択できますが、最終的には XML を選択することにしました。トラブル。今日は挑戦でした。午後を過ごして、ようやく何かを得ることができました。
学習ステップ:
明確な目標: 1. xml の構造を理解する; 2. xml ファイルを動的に作成する方法; 3. xml ファイルを読み取って変更する方法
1. xml の構造はツリー構造です:
これは理解しやすいです。単純に 1 つ書きます:

コードをコピーします コードは次のとおりです:

pic 1<写真>

2. 私が使用する PHP 作成:
1. DOM オブジェクトを定義します: $dom = new DomDocument('1.0')
2. 子要素を追加します: $dom->appendChild($dom->createElement) ("pictures"))
メモリ内のプロトタイプは次のとおりです:
内部に子要素を追加し続けます: *->appendChild($dom->createElement("picture")); adduly:** - &gt; appendChild($ dom-&gt; createElement( "id");行:
$dom->appendChild($dom->createElement("pictures"))->appendChild($dom->createElement("picture")) ->appendChild($dom->createElement ("id"))->appendChild($dom->createNode("1"));
これでメモリは次のようになります: 1 &lt;/picture&gt;&lt;/picture&gt;
したがって、一般的には次のように書かれます: $pictures = $dom->appendChild($dom->createElement("pictures"));
$picture = $pictures->appendChild($dom->createElement( "picture" ));
$id = $picture->appendChild($dom->createElement("id")); 名前ノードを作成することもできます:
$name = $picture->appendChild($) dom->createElement("name"));
));
次に、画像ノードを作成する必要があります:
$picture = $pictures->appendChild($dom->createElement("picture")) ;
実は、こうした面倒なことは for ループを書くことで実現できます。
XML ファイルを生成します:
$dom->formatOutput = true;//フォーマットされた出力を設定します
$dom->save("erhsh.xml");//XML ファイルを保存します

3、XML ファイルを読み取ります。

1. さらに DOM オブジェクトを定義します; $dom->new DomDocument(); 2. XML ファイルをロードします: $dom->load("erhsh.xml"); 3. 以下に従ってノードを取得します。ノードの名前 Collection: $dom->getElementByTagName("pictures");
この方法はちょっと面倒です、参考ファイル:
http://www.jb51.net/article/25853.htm

でも、私が気に入っているメソッドは、 simplexml_load_file("erhsh.xml"); このメソッドは、xml ファイルの内容をオブジェクトの形式に変換できます。「->」を使用すると、xml の内容を簡単に削除できます。 knot と "[]";
でも開発中はまだ使いにくい 少し問題が発生しました:
実行時: print_r($xml->pictures); 、出力は SimpleXMLElement オブジェクトです, ([picture] => ; array([0]=>array(...)[1 ]=>array(...))); 再度実行します: print_r($xml->pictures->picture); n 個の個別のオブジェクトです。
実行: print_r($xml->pictures->picture[0]->id); 出力はオブジェクトのままです。これは非常に理解できないので、文字列である必要があります。 最後にネットでは「反復オブジェクト」だと言われていますが、
echo出力を使えばいいのですが、print_r()とvar_dump()の出力が不正確です。参考アドレス:http://www.jb51.net/article/25852.htm
もちろん、この方法でxmlの値を変更することも可能です。
この文章はひどいものですが、覚えておいてください。



http://www.bkjia.com/PHPjc/322735.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/322735.html

技術記事

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。