zoukankan      html  css  js  c++  java
  • XML学习笔记

    XML学习笔记

    第一部分:XML简介  

      我们经常可以听到XML、HTML、XHTML这些语言,后两者比较清楚,一直不是很明白XML是什么,这里做一个总结。

      XML(eXtensible Markup Language),即为可扩展标记语言,被用来传输和存储数据,我们使用的JSON传输数据,实际上原来使用的就是XML。

      与HTML区别:XML被用来传输和存储数据。

             HMTL被用来显示数据。

      注意:XML的标签与预定义的HTML标签不同,XML的标签没有被预定义,因此我么需要自行定义标签。

    第二部分:XML用途

      它可以把数据从HTML分离,因为我们只需要通过使用几行JavaScript代码就可以读去一个外部的XML文件,并更新我们的网页的数据内容。

      它还可以创建新的互联网语言。比如XHTML 、作为手持设备的标记语言的WAP和WML等。

    第三部分:XML树结构

      下面是一个例子:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
    </note>

    其中第一行是XML声明:定义了XML为1.0版本,使用的是ISO-8859-1编码。这个是必须的。

    第二行中的标签是XML树的根元素。 这个也是必须的。当然,根元素这里设置为note,也可以是其他的。

    后面几行中的to from heading body是子元素。子元素中可以嵌套子元素。

    第四部分:xml语法

      1.所有的XML元素都必须有一个关闭标签,否则是违法的。

      2.XML标签对大小写敏感。

      3.XML标签必须正确嵌套。

      4.XML文档必须要有一个根元素。

      5.如果给XML元素添加属性,那么属性值必须有引号。

      6.在XML中,不能把< &这些特殊意义的符号放在XML元素中,必须使用实体。

      7.XML的注释和Html相似如:<!-- this is a explanation -->

      8.XML中空格会被保留。

    第五部分:xml元素

      即开始标签、内容、结束标签。

      注意:xml命名时不能以xml、XML这些开始。

      我们可以命名first_name等,不要使用first-name(一些软件会认为这是要从first中减去name) ,不要使用first.name(会被看作对象).

      

    第六部分:xml属性

      注意:尽量不要使用属性,使用元素会更好。

      属性值必须使用双引号括起来。

      属性难以阅读和维护。请尽量使用元素来描述数据。

    <note day="10" month="01" year="2008"
    to="Tove" from="Jani" heading="Reminder"
    body="Don't forget me this weekend!">
    </note>

      上述这种使用了大量的属性的方式是非常愚蠢的!!!!

      

      

    第七部分:查看XML文件

       在所有的主流浏览器中,都可以查看原始的XML文件。

       点击下面的链接,即可在浏览器中查看xml文件:

      http://www.runoob.com/try/xml/note.xml

      点击下面的链接,这是一个有错误的xml文件:

      http://www.runoob.com/try/xml/note_error.xml

     

    第八部分:xml解析

      所有的现代浏览器都有内建的XML解析器。下面这个例子可以把XML文档解析到XML DOM对象中:

     

    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.open("GET","books.xml",false);
    xmlhttp.send();
    xmlDoc=xmlhttp.responseXML;

    其中,xmlhttp.responseXML即为解析之后的XML对象。这样就可以通过Javascript来操作了。

    那么怎么来操作呢?看下面这个例子:

    <!DOCTYPE html>
    <html>
    <body>
    <h1>W3Cschool Internal Note</h1>
    <div>
    <b>To:</b> <span id="to"></span><br>
    <b>From:</b> <span id="from"></span><br>
    <b>Message:</b> <span id="message"></span>
    </div>
    
    <script>
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.open("GET","note.xml",false);
    xmlhttp.send();
    xmlDoc=xmlhttp.responseXML;
    
    document.getElementById("to").innerHTML=
    xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
    document.getElementById("from").innerHTML=
    xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
    document.getElementById("message").innerHTML=
    xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
    </script>
    
    </body>
    </html>
    View Code

    其中,我们得到的responseXML的dom树是这样的:

      介绍就到这里吧,要看更多,推荐菜鸟教程。

      

      

  • 相关阅读:
    UVA 11174 Stand in a Line,UVA 1436 Counting heaps —— (组合数的好题)
    UVA 1393 Highways,UVA 12075 Counting Triangles —— (组合数,dp)
    【Same Tree】cpp
    【Recover Binary Search Tree】cpp
    【Binary Tree Zigzag Level Order Traversal】cpp
    【Binary Tree Level Order Traversal II 】cpp
    【Binary Tree Level Order Traversal】cpp
    【Binary Tree Post order Traversal】cpp
    【Binary Tree Inorder Traversal】cpp
    【Binary Tree Preorder Traversal】cpp
  • 原文地址:https://www.cnblogs.com/zhuzhenwei918/p/6135260.html
Copyright © 2011-2022 走看看