jQuery XMLファイルのロードと解析の方法例分析


この実例は、jQueryがXMLファイルをロードして解析する方法を述べている。皆さんに参考にしてあげます。具体的には以下の通りです。
1、簡単に述べる
XML(eXtenseble Markp Language)はタグ言語を拡張できます。HTMLと同じSGML標準共通言語です。
2、コンテント-Type
XMLファイルが正常に解析できない場合が多いのは、コンテント-Typeが設定されていないからです。Contentt-Type自体がXMLファイルであれば設定は不要です。バックグラウンドプログラムによって動的に生成される場合は、Conteet-Typeを「text/xml」として設定する必要があります。そうでないと、jQueryはデフォルトの「text/html」として処理され、解析に失敗します。以下はいくつかの一般的な言語の中でConteet Typeを設定する方式です。
header(「Contentt-Type:text/xml」);     //PHP
reponse.contentType=「text/xml」   //ASP
reponse.set ContentType(「text/xm」)  //JSP
3、インスタンスXMLドキュメントを作成する(Student.xml)

<?xml version="1.0" encoding="utf-8" ?>
<stulist>
 <student email="[email protected]">
  <name>peter</name>
  <id>1</id>
 </student>
 <student email="[email protected]">
  <name>ken</name>
  <id>2</id>
 </student>
</stulist>

4、XMLを取得する

$(document).ready(function() {
  $.ajax({
    url: '/xml/Student.xml',
    type: 'GET',
    dataType: 'xml',
    timeout: 1000, //    
    cache: false,  //    
    error: function(xml) {
      alert("  XML    !");
    },
    success: GetStudentComplete  //         
  });
});

JQueryのAjax関数で読みます。
5、XMLの解釈

//  XML       
function GetStudentComplete(xml) {
  $(xml).find("student").each(function(i) {   //    student     
    var id = $(this).children("id");     //     
    var id_vaule = id.text();         //      
    var email_vaule = $(this).attr("email"); //       
    alert(id_vaule);
    alert(email_vaule);
  });
}

解析XMLドキュメントは解析DOMと同様に、find()、children()などの関数で解析して、each()の方法で巡回することもできます。また、text()とatr()の方法でノードテキストと属性を取得することもできます。
PS:ここでxmlの操作に関するオンラインツールをいくつか提供します。参考にしてください。
オンラインXML/JSON相互変換ツール:
http://tools.jb51.net/code/xmljson
オンラインXML/オンライン圧縮XML:
http://tools.jb51.net/code/xmlformat
XMLオンライン圧縮/フォーマットツール:
http://tools.jb51.net/code/xml_フォーマットcompless
xmlコードオンラインフォーマット美化ツール:
http://tools.jb51.net/code/xmlcodeformat
jQueryに関するものについてもっと興味がある方は、当駅のテーマを見てください。「jQuery操作xmlテクニックまとめ」「jQuery操作jsonデータ技術まとめ」「jQuery拡張テクニックのまとめ」「jQuery常用プラグインと使い方のまとめ」「jQueryよくある経典効果のまとめ」「jqueryセレクタの使い方のまとめ
ここで述べたように、皆さんのjQueryプログラムの設計に役に立ちます。