zoukankan      html  css  js  c++  java
  • [Grt]一篇简单概括XML

    一、XML基础

    XML主要用途(我认为就这三点):

      XML 把数据从 HTML 分离
      XML 简化数据共享
      XML 简化数据传输

     

    XML 语法规则:

    • XML 文档必须有根元素
    • XML 文档必须有关闭标签
    • XML 标签对大小写敏感
    • XML 元素必须被正确的嵌套
    • XML 属性必须加引号        例如:<note date="08/08/2008">
    • XML 注释 : <!-- This is a comment --> 

     

    例如:

    <?xml version="1.0" encoding="ISO-8859-1"?>          //定义 XML 的版本 (1.0) 和所使用的编码 (ISO-8859-1 = Latin-1/西欧字符集)。
    <?xml-stylesheet type="text/css" href="cd_catalog.css"?>  //引用css文件
    <?xml-stylesheet type="text/xsl" href="simple.xsl"?>    //使用XLST
    
    <note>                          //根元素 note 
      <to>George</to>                   //子元素 to 
      <from>John</from>                  //子元素 from
      <heading>Reminder</heading>
      <body>Don't forget the meeting!</body>
    </note>
    

      

    在 XML 中, 5 个预定义的实体引用:

    &lt; < 小于
    &gt; > 大于
    &amp; & 和号
    &apos; ' 单引号
    &quot; " 引号
    
    

    二、高级

    1、使用前缀来避免命名冲突

    <h:table>
      <h:tr>
        <h:td>Apples</h:td>
        <h:td>Bananas</h:td>
      </h:tr>
    </h:table>
    

    2、让XML解析器不解析:

    CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束:

    <script>
    <![CDATA[
    function matchwo(a,b)
    {
    if (a < b && a < 0) then
      {
      return 1;
      }
    else
      {
      return 0;
      }
    }
    ]]>
    </script>
    

      

    三、XML JavaScript

    1、XMLHttpRequest 对象用于在后台与服务器交换数据
    创建 XMLHttpRequest 对象的语法:

    xmlhttp=new XMLHttpRequest();

    老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象:

    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

    XML / ASP
    把 XML 文档打开并发送到服务器上的 ASP 页面,分析此请求,然后传回结果。

    <html>
    <body>
    <script type="text/javascript">
    xmlHttp=null;
    if (window.XMLHttpRequest)
    {// code for IE7, Firefox, Opera, etc.
    xmlHttp=new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {// code for IE6, IE5
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (xmlHttp!=null)
    {
    xmlHttp.open("GET", "note.xml", false);
    xmlHttp.send(null);
    xmlDoc=xmlHttp.responseText;
    
    xmlHttp.open("POST", "demo_dom_http.asp", false);
    xmlHttp.send(xmlDoc);
    document.write(xmlHttp.responseText);
    }
    else
    {
    alert("Your browser does not support XMLHTTP.");
    }
    </script>
    </body>
    </html>
    

    2、XML DOM

    XML DOM (XML Document Object Model) 定义了访问和操作 XML 文档的标准方法。

    DOM 把 XML 文档作为树结构来查看。能够通过 DOM 树来访问所有元素。可以修改或删除它们的内容,并创建新的元素。元素,它们的文本,以及它们的属性,都被认为是节点。

    在下面的例子中,我们使用 DOM 引用从 <to> 元素中获取文本:

    xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue

    xmlDoc -由解析器创建的 XML 文档
    getElementsByTagName("to")[0] - 第一个 <to> 元素
    childNodes[0] - <to> 元素的第一个子元素(文本节点)


    HTML DOM
    HTML DOM (HTML Document Object Model) 定义了访问和操作 HTML 文档的标准方法。

    可以通过 HTML DOM 访问所有 HTML 元素。

    在下面的例子中,我们使用 DOM 引用来改变 id="to" 的 HTML 元素的文本:

    document.getElementById("to").innerHTML=
    

    示例,把一个 XML 文档 ("note.xml") 载入 XML 解析器中:

    <html>
    <body>
    <h1>W3School.com.cn Internal Note</h1>
    <p><b>To:</b> <span id="to"></span><br />
    <b>From:</b> <span id="from"></span><br />
    <b>Message:</b> <span id="message"></span>
    
    <script type="text/javascript">
    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>
    

    3、

    在 HTML 中显示 XML 数据

    遍历一个 XML 文件 (cd_catalog.xml),把每个 CD 元素显示为一个 HTML 表格行:

    <html>
    <body>
    
    <script type="text/javascript">
    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","cd_catalog.xml",false);
    xmlhttp.send();
    xmlDoc=xmlhttp.responseXML;
    
    document.write("<table border='1'>");
    var x=xmlDoc.getElementsByTagName("CD");
    for (i=0;i<x.length;i++)
    {
    document.write("<tr><td>");
    document.write(x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue);
    document.write("</td><td>");
    document.write(x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue);
    document.write("</td></tr>");
    }
    document.write("</table>");
    </script>
    
    </body>
    </html>
    

      

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 贪吃的大嘴
    Java实现 蓝桥杯VIP 算法提高 贪吃的大嘴
    Java实现 蓝桥杯VIP 算法提高 贪吃的大嘴
    Java实现 蓝桥杯VIP 算法提高 贪吃的大嘴
    Java实现 蓝桥杯VIP 算法提高 士兵排队问题
    Java实现 蓝桥杯VIP 算法提高 士兵排队问题
    Java实现 蓝桥杯VIP 算法提高 士兵排队问题
    Java实现 蓝桥杯VIP 算法提高 士兵排队问题
    Java实现 蓝桥杯VIP 算法提高 数字黑洞
    Minifilter微过滤框架:框架介绍以及驱动层和应用层的通讯
  • 原文地址:https://www.cnblogs.com/guorongtao/p/11274747.html
Copyright © 2011-2022 走看看