• 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树是这样的:

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

      

      

  • 相关阅读:
    I/O会一直占用CPU吗?【转载】
    CPU和线程的关系
    future封装了callable,thread封装future。
    (转)Java中的守护线程
    线程中sleep方法和wait方法有什么区别?(转)
    Java异常---获取异常的堆栈信息
    分析iOS Crash文件,使用命令符号化iOS Crash文件
    String Matching(poj1580)
    U转串口驱动安装
    [LNU.Machine Learning.Question.1]梯度下降方法的一些理解
  • 原文地址:https://www.cnblogs.com/zhuzhenwei918/p/6135260.html
Copyright © 2020-2023  润新知