第一章(asp.net xmlとjson)


第一章(asp.net xmlとjson)
1.htmlは表現型のタグ言語である.
2.xmlは拡張可能なタグ言語である.
3.xml書き方の特徴:
   (1)
(2)マークは必ず閉じる
(3)xml要素が1つしかないルート要素
4.xmlファイルの書き込み:
XmlDocument doc = new XmlDocument();
//  xml    
XmlDeclaration declaration = doc.CreateXmlDeclaration("1.0", "utf-8", null);
//     
XmlNode root = doc.CreateNode(XmlNodeType.Element, "students", null);
XmlNode node1 = doc.CreateNode(XmlNodeType.Element, "student", null);
//    
XmlNode node1text = doc.CreateNode(XmlNodeType.Text, null, null);
node1text.Value = "  ";
//    
XmlAttribute attr1 = doc.CreateAttribute("hobby");
attr1.Value = "  ";
XmlAttribute attr2 = doc.CreateAttribute("age");
attr1.Value = "20";
// node1        
node1.AppendChild(node1text);
// node1        
node1.Attributes.Append(attr1);
node1.Attributes.Append(attr2);
//         
root.AppendChild(node1);
//          
doc.AppendChild(declaration);
//         
doc.AppendChild(root);
//    
string path =context.Server.MapPath(@"~/XML/yexu.xml");
doc.Save(path);

5.xmlの読み込み:
//     xmldocument
 XmlDocument doc = new XmlDocument();
 string path = MapPath(@"~\XML\students.xml");
 //  xmldocument
doc.Load(path);
 //        
 XmlNode root = doc.DocumentElement;
 string info = "";
 //         (  <student>)
 foreach (XmlNode  stuNode in root .ChildNodes)
 {
     info += stuNode.Attributes.Item(0).Value;
     info += stuNode.Attributes.Item(1).Value;
     //  stunode      
     foreach (XmlNode node in stuNode.ChildNodes )
     {
         //      
         info += node.Value;
     }
     info += "<br/>";
 }
 Response.Write(info);

6.xml操作:
   (1)Xmldom   XMLdocument ,xmlnode
   (2)xmlreader ,xmlwritter   [using system.xml.serialization]
   (3)dataset  readxml,writexml
7.sqlでファイルをxmlに変換する:select*from[テーブル名]for xml auto;
8.js.jquery:
   (1.)① DomParser()   firefox ,chrome    
           var DomParser() =new Domparser();
②ActiveXobject IEブラウザ
           var xml=new ActiveXobject("Microsoft.xmldom");
(2)jquery解析:
<script type ="text/javascript">
        $(function () {
            $.ajax({
            url: "http://localhost:2754/Handler1.ashx",
                type: "get",
                datatype: "xml",
                success: function (data) {
                    $(data).each(function (index) {
                        //      
                        $(this).find("Student").text();
                        $(this).find("Student").each(function (attrindex) {
                            //      
                            $(this).get(0).attributes[0].value;
                        });
                    })
                }
            })
        })
    </script>

9.json解析:
<script type="text/javascript">
        $(function () {
            $.ajax({
                url: "JsonHandler.ashx",
                type: "get",
                dataType: "json",
                success: function (data) {
                    $(data).each(function (index) {
                        $(this)[0].bookname;
                    })
                }
            })
        });
    </script>

10.json:(シーケンス化)
   (1)JavaScriptSerializer
使用法:listlist=new list{new book(){bookid=",bookname="}}
       JavaScriptSerializer js =new JavaScriptSerializer();
       js .Serializer(list);
注意:シーケンス化はstringタイプを返し、datasetを解析できません.
11.ストリームへの変換:
MemoryStream  ms=new MemoryStream();
xmldocument.save(ms);
byte[] mybytes = byte[ms.length];
mybytes = ms .ToArray();
content.respone.outputStream.write(mybytes,0,mybytes.length);

12.ajaXデータアップロード:ajaxjsonの使用
   (1.)クライアントがjsonをオブジェクトに変換
   
// json        
<script type="text/javascript">
    var jsonvar={"key","value"};
    //object  
    alert(typeof.jsonvar);
    //string  
    alert(typeof JSON.stringify(jsonvar));
<script>

   (2.)json文字列をjsonオブジェクトに変換
<script type="text/javascript">
    var str={"key","value"};
    Json.parse(str);
<script>

13.jsonの利点:可読性を向上させ、複雑さを減らす.
jsonは完全に動的であり、json構造の間でデータを表す方法を変えることができる.
同じjson形式のオブジェクトを異なる方法で表すことができる.
14.xmlとjsonの比較:
       (1.)クライアント:json(jsonフォーマットが扱いやすい)xmlより優れている
(2)サーバ:xml(xmlはシーケンス化と逆シーケンス化でより安定)jsonより優れている
(3)安全性:xmlはjsonより優れている(jsonは正規表現検出が必要)
(4)性能:json(軽量級)がxmlより優れている
(5)その他:xml検証技術はより成熟している.