<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年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿(14)

    隨筆檔案(6)

    文章分類(467)

    文章檔案(423)

    相冊

    收藏夾(18)

    JAVA

    搜索

    •  

    積分與排名

    • 積分 - 828831
    • 排名 - 49

    最新評論

    閱讀排行榜

    評論排行榜

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

    如需讀取、更新、創(chuàng)建或者操作某個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解析器。解析器會將文檔載入電腦的內(nèi)存中。一旦文檔被載入,可使用DOM對其數(shù)據(jù)進行操作。DOM把XML作為一顆樹來處理。

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

    微軟的XML解析器

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

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

    如需創(chuàng)建微軟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");

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

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

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

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

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

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

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

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

    上面的腳本的第一行創(chuàng)建了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會返回一個節(jié)點數(shù)組。此數(shù)組含有XML文檔中擁有指定名稱的所有元素。在這例子中,只有一個"from"元素,但是仍然需要設(shè)定數(shù)組的下標( [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 閱讀(3092) 評論(0)  編輯  收藏 所屬分類: xml

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


    網(wǎng)站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 亚洲日本一线产区和二线产区对比| 美女黄频免费网站| 国产在线观看www鲁啊鲁免费| selaoban在线视频免费精品| 久久亚洲精品成人无码网站| 麻豆精品国产免费观看| 成人免费区一区二区三区 | 亚洲免费网站观看视频| 亚洲aⅴ天堂av天堂无码麻豆| 亚洲αv在线精品糸列| 思思99re66在线精品免费观看| aaa毛片免费观看| 一本天堂ⅴ无码亚洲道久久| 久久久精品国产亚洲成人满18免费网站 | 亚洲成AV人片在WWW| 亚洲精品国产美女久久久| 无码高潮少妇毛多水多水免费| 日韩av无码免费播放| 亚洲AV无码一区二区三区电影| 久久青草亚洲AV无码麻豆| 免费观看日本污污ww网站一区| 久久免费精彩视频| 免费人成又黄又爽的视频在线电影| 亚洲欧洲自拍拍偷综合| 亚洲日本va在线视频观看| 日韩激情无码免费毛片| 亚洲一级毛片免费在线观看| 99精品免费视频| 曰批免费视频播放在线看片二| 精品亚洲AV无码一区二区| 久久青草亚洲AV无码麻豆| 亚洲中文字幕视频国产| 日本无吗免费一二区| 波多野结衣中文字幕免费视频| 国产一精品一av一免费爽爽| 成人免费观看男女羞羞视频| 亚洲色成人网站WWW永久四虎 | 国产亚洲人成网站在线观看| 日韩在线免费播放| 毛片免费在线观看网站| 亚洲免费视频播放|