<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 6  文章 - 129  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(14)

    隨筆檔案(6)

    文章分類(467)

    文章檔案(423)

    相冊

    收藏夾(18)

    JAVA

    搜索

    •  

    積分與排名

    • 積分 - 825594
    • 排名 - 49

    最新評論

    閱讀排行榜

    評論排行榜

    出處:http://www.webjx.com/htmldata/2007-06-30/1183208042.html

    如需讀取、更新、創建或者操作某個XML文檔,則需要XML解析器。

    實例

    解析XML文件 - 跨瀏覽器的實例

    本例是一個跨瀏覽器的實例,把某個XML文檔("note.xml")載入XML解析器。

    <html>
    <body>
    <script type="text/vbscript">
    set xmlDoc=CreateObject("Microsoft.XMLDOM")
    xmlDoc.async="false"
    xmlDoc.load("/example/xmle/xmle_xml_note.xml")
    document.write("<h1>Traversing the XML nodes</h1>")
    for each x in xmlDoc.documentElement.childNodes
    document.write("<b>" & x.nodename & "</b>")
    document.write(": ")
    document.write(x.text)
    document.write("<br><br>")
    next
    </script>
    </body>
    </html>

    解析XML字符串 - 跨瀏覽器的實例

    本例是一個跨瀏覽器的實例,展示如何載入并解析某個XML字符串。

    <html>
    <body>
    <script type="text/javascript">
    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
    xmlDoc.async="false"
    xmlDoc.load("/example/xmle/xmle_xml_note.xml")
    document.write
    ("The first XML element in the file contains: ")
    document.write
    (xmlDoc.documentElement.childNodes.item(0).text)
    </script>
    </body>
    </html>

    解析一個XML文檔

    如需操作某個XML文檔,您需要XML解析器。解析器會將文檔載入電腦的內存中。一旦文檔被載入,可使用DOM對其數據進行操作。DOM把XML作為一顆樹來處理。

    微軟的XML解析器與Mozilla瀏覽器中使用的解析器是有差異的。在本教程中,我們會為您展示如何創建可工作于IE和Mozilla瀏覽器中的跨瀏覽器腳本。

    微軟的XML解析器

    微軟的XML解析器是存在于IE 5.0或更高版本中的COM組件。一旦你安裝了IE,就可使用腳本來利用解析器了。

    微軟的XML解析器支持所有必要的功能,來遍歷節點樹,訪問節點以及它們的屬性值,插入并刪除節點,并將節點數轉換回XML。

    如需創建微軟XML解析器的一個實例,請使用下面的代碼:

    JavaScript:
    var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    VBScript:
    set xmlDoc=CreateObject("Microsoft.XMLDOM")
    ASP:
    set xmlDoc=Server.CreateObject("Microsoft.XMLDOM")

    下面的代碼段可向微軟的XML解析器載入一個已有的XML文檔("note.xml"):

    var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async="false";
    xmlDoc.load("note.xml");

    上面的腳本的第一行創建了XML解析器的一個實例。第二行關閉了同步載入,這樣可以確保在文檔被完全載入前解析器不會繼續執行。第三行會告知解析器載入名為"note.xml"的XML的文檔。

    Mozilla、Firefox以及Opera中的XML解析器

    Mozilla瀏覽器的XML解析器支持所有必要的功能,來遍歷節點樹,訪問節點以及它們的屬性值,插入并刪除節點,并將節點樹轉換回XML。

    如需創建Mozilla瀏覽器的XML解析器的一個實例,請使用下面的代碼:

    JavaScript:
    var xmlDoc=document.implementation.createDocument("ns","root",null);

    第一個參數,ns,定義用于XML文檔的命名空間(namespace)。第二個參數,root,是XML文件中的XML根元素。第三個參數,null,一般總是null,這是由于目前還沒有用到這個參數。

    下面的代碼段可向Mozilla瀏覽器的XML解析器載入一個已有的XML文檔("note.xml"):

    var xmlDoc=document.implementation.createDocument("","",null);
    xmlDoc.load("note.xml");

    上面的腳本的第一行創建了XML解析器的一個實例。第二行會告知解析器載入名為"note.xml"的XML的文檔。

    解析某個XML文件 - 跨瀏覽器的實例

    下面的例子是一個跨瀏覽器的實例,向XML解析器載入了某個已有的XML文檔("note.xml"):

    <html>
    <head>
    <script type="text/javascript">
    var xmlDoc;
    function loadXML()
    {
    // 用于 IE 的代碼:
    if (window.ActiveXObject)
      {
      xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.async=false;
      xmlDoc.load("note.xml");
      getmessage();
      }
    // 用于 Mozilla, Firefox, Opera, 等瀏覽器的代碼:
    else if (document.implementation &&
    document.implementation.createDocument)
      {
      xmlDoc=document.implementation.createDocument("","",null);
      xmlDoc.load("note.xml");
      xmlDoc.onload=getmessage;
      }
    else
      {
      alert('Your browser cannot handle this script');
      }
    }
    function getmessage()
    {
    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>
    </head>
    <body onload="loadXML()">
    <h1>W3Schools 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>
    </p>
    </body>
    </html>

    輸出:

    W3Schools Internal Note
    To: Tove
    From: Jani
    Message: Don't forget me this weekend!

    重要的注釋

    如需從某個XML元素(比如<from>Jani</from>)中提取文本(比如Jani),請使用下面的語法:

    getElementsByTagName("from")[0].childNodes[0].nodeValue

    重要事項:getElementsByTagName會返回一個節點數組。此數組含有XML文檔中擁有指定名稱的所有元素。在這例子中,只有一個"from"元素,但是仍然需要設定數組的下標( [0] )。

    解析一個XML字符串 - 跨瀏覽器的實例

    下面的代碼是一個跨瀏覽器的實例,向我們展示了如何加載和解析某個XML字符串:

    <html>
    <body>
    <script type="text/javascript">
    var text="<note>";
    text=text+"<to>Tove</to>";
    text=text+"<from>Jani</from>";
    text=text+"<heading>Reminder</heading>";
    text=text+"<body>Don't forget me this weekend!</body>";
    text=text+"</note>";
    // 用于 IE 的代碼:
    if (window.ActiveXObject)
      {
      var doc=new ActiveXObject("Microsoft.XMLDOM");
      doc.async="false";
      doc.loadXML(text);
      }
    // 用于 Mozilla, Firefox, Opera, 等瀏覽器的代碼:
    else
      {
      var parser=new DOMParser();
      var doc=parser.parseFromString(text,"text/xml");
      }
    // documentElement 提交根元素:
    var x=doc.documentElement;
    document.write("Text of first child element: ");
    document.write(x.childNodes[0].childNodes[0].nodeValue);
    document.write("<br />");
    document.write("Text of second child element: ");
    document.write(x.childNodes[1].childNodes[0].nodeValue);
    </script>
    </body>
    </html>

    輸出:

    Text of first child element: Tove
    Text of second child element: Jani

    注釋:Internet Explorer使用loadXML()方法解析XML字符串,而Mozilla瀏覽器使用DOMParser對象。




    posted on 2007-09-29 16:27 Ke 閱讀(3087) 評論(0)  編輯  收藏 所屬分類: xml

    只有注冊用戶登錄后才能發表評論。


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 亚洲一区电影在线观看| 亚洲国产成人久久三区| 免费国产高清毛不卡片基地| 成年女人毛片免费播放人| 亚洲校园春色小说| AV无码免费永久在线观看| 亚洲欧洲校园自拍都市| 最近中文字幕大全中文字幕免费| 亚洲人成电影亚洲人成9999网 | 精品国产无限资源免费观看| 亚洲最大的成网4438| 中文字幕免费在线| 亚洲Av无码一区二区二三区| 无码精品A∨在线观看免费| 亚洲另类视频在线观看| 成人免费无毒在线观看网站| 亚洲第一街区偷拍街拍| 日韩在线免费电影| 一区二区三区免费视频网站| 亚洲国产另类久久久精品小说| 无码日韩精品一区二区免费暖暖| 亚洲黄色免费电影| 国产v精品成人免费视频400条| 国产亚洲欧美日韩亚洲中文色| 亚洲国产精品人人做人人爱| A片在线免费观看| 亚洲大香人伊一本线| 黄网址在线永久免费观看 | 亚洲av专区无码观看精品天堂| 成人免费无码精品国产电影| 成人免费网站久久久| 亚洲av无码潮喷在线观看| 免费福利在线播放| 免费国产va视频永久在线观看| 亚洲AV无码专区电影在线观看| 亚洲免费综合色在线视频| 一区二区在线视频免费观看| 亚洲视频在线观看免费视频| 国产高清免费观看| 日本xxxx色视频在线观看免费| 亚洲av无码日韩av无码网站冲|