jasmine214--love

          只有當你的內心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強壯的體魄和明朗、快樂或者寧靜的面容。
          posts - 731, comments - 60, trackbacks - 0, articles - 0

          XML解析--XMLDoc對象的方法總匯

          Posted on 2010-06-25 11:00 幻海藍夢 閱讀(2094) 評論(0)  編輯  收藏 所屬分類: JS

          原文:http://hi.baidu.com/superfeng/blog/item/1575ff033a66f6743812bbb0.html

          http://www.aygfsteel.com/zhyiwww/archive/2007/05/29/120741.html

          首先,通過 ajax url 提交請求,來取得遠程 xml 數據。

          var xmlDoc = response.responseXML;

          此時,你得到 了 xml 的文檔對象。

          那么你如何解 析文檔呢?

          也就是,如何 取得一個結點對象呢?

          var allPoi = xmlDoc.selectNodes( "/schemes/scheme/line/stops/stop/points/point" );

          通過 selectNodes 方法,我們可 以得到所有的符合這個路徑的所有子節點。

          如果 allPoi得到的是葉子節點的話,那么我們就可以通過allPoi[0].text來取得節點的值.

          下面,我們就 可以遍歷其對象了:

          ??? for ( var i=0;i length ;i++){

          ?????? alert (pois[i].selectSingleNode( "iLongitude" ).text);??????

          ??? }

          selectSingleNode 可以取得其中 一個子節點,通過 text 屬性來取得其 對應的字符串值。

          ?

          取得文檔后, 我們解析 xml 的時候也可以 通過其他的方法,比如:

          var stopsGroup = xmlDoc.getElementsByTagName("stops")

          這種辦法也一 樣可以取到你想要取得所有某節點對象。

          之后,你就可 以通過和上面相同的方法來遍歷。以進一步取得其子節點的值。


          createTextNode 方法

          作??? 用

          建立一個新的text 節點,并包含指定的數據。

          基本語法

          xmlDocument.createTextNode(data);

          說??? 明

          data 是一個代表新text 節點的字符串。一個新的text 節點被建立,但是沒有加到文件樹中。若要將節點加到文件樹中,必須使用插入方法,例如:insertBefore,replaceChild或 appendChild。

          范??? 例

          objNewTextNode = xmlDoc.createTextNode("This is a text node.");
          alert(objNewTextNode.xml);

          getElementsByTagName 方法

          作??? 用

          傳回指定名稱的元素集合。

          基本語法

          objNodeList = xmlDocument.getElementsByTagName(tagname);

          說??? 明

          tagname 是一個字符串,代表找到的元素卷標名稱。使用tagname "*"傳回文件中所有找到的元素。

          范??? 例

          objNodeList = xmlDoc.getElementsByTagName("*");
          alert(objNodeList.item(1).xml);

          haschildnodes 方法

          作??? 用

          如果指定的節點有一個或更多子節點,傳回值為true。

          基本語法

          boolValue = xmlDocumentNode.hasChildNodes() ;

          說??? 明

          如果此節點有子節點傳回值為true,否則傳回false 值。

          范??? 例

          boolValue = xmlDoc.documentElement.hasChildNodes();
          alert(boolValue);

          insertBefore 方法

          作??? 用

          在指定的節點前插入一個子節點。

          基本語法

          objDocumentNode = xmlDocumentNode.insertBefore(newChild,refChild);

          說??? 明

          newChild 是一個包含新子節點地址的對象,refChild 是參照節點的地址。新子節點被插到參照節點之前。如果refChild 參數沒有包含在內,新的子節點會被插到子節點列表的末端。

          范??? 例

          objRefNode = xmlDoc.documentElement;
          alert(xmlDoc.xml);
          objNewNode = xmlDoc.createComment("This is a comment");
          xmlDoc.insertBefore(objNewNode, objRefNode);
          alert(xmlDoc.xml);

          load 方法

          作??? 用

          表示從指定位置加載的文件。

          基本語法

          boolValue = xmlDocument.load(url);

          說??? 明

          url 包含要被加載檔案的URL 的字符串。假如文件加載成功,傳回值即為true。若加載失敗,傳回值為false。

          范??? 例

          boolValue = xmlDoc.load("LstA_1.xml");
          alert(boolValue);

          loadXML 方法

          作??? 用

          加載一個XML 文件或字符串的片斷。

          基本語法

          boolValue = xmlDocument.loadXML(xmlString);

          說??? 明

          xmlString 是包含XML 文字碼的字符串。

          范??? 例

          xmlString = "Hello!";
          boolValue = xmlDoc.loadXML(xmlString);
          alert(boolValue);

          nodeFromID 方法

          作??? 用

          傳回節點ID 符合指定值的節點。

          基本語法

          xmlDocumentNode = xmlDocument.nodeFromID(idString);

          說??? 明

          idString 是一個包含ID 值的字符串。符合的節點必定是ID 型態。若符合,將傳回一個對象;若操作失敗,則傳回null。

          范??? 例

          objDocumentNode = xmlDoc.nodeFromID("TO");
          alert(objDocumentNode);

          parsed 方法

          作??? 用

          會驗證該指定的節點(node)及其衍生的子節點(descendants)是否已被解析過。

          基本語法

          boolValue = xmlDocumentNode.parsed();

          說??? 明

          如果全部的節點都已經被解析過了,則傳回值為ture;如果有任何一個節點尚未被解析,傳回值則為false。

          范??? 例

          currNode = xmlDoc.documentElement.childNodes.item(0);
          boolValue = currNode.parsed();
          alert(boolValue);

          removeChild 方法

          作??? 用

          會將指定的節點從節點清單中移除。

          基本語法

          objDocumentNode = xmlDocumentNode.removeChild(oldChild);

          說??? 明

          oldChild 為一個包含要被移除的節點對象。

          范??? 例

          objRemoveNode = xmlDoc.documentElement.childNodes.item(3);
          alert(xmlDoc.xml);
          xmlDoc.documentElement.removeChild(objRemoveNode);
          alert(xmlDoc.xml);

          replaceChild 方法

          作??? 用

          置換指定的舊子節點為提供的新子節點。

          基本語法

          objDocumentNode = xmlDocumentNode.replaceChild(newChild,oldChild);

          說??? 明

          newChild 為包含新子節點的對象。如果此參數為null,則此舊子節點會被移除而不會被取代。oldChild 為包含舊子節點的對象。

          范??? 例

          objOldNode = xmlDoc.documentElement.childNodes.item(3);
          objNewNode = xmlDoc.createComment("I've replaced the BCC element.");
          alert(xmlDoc.xml);
          xmlDoc.documentElement.replaceChild(objNewNode,objOldNode);
          alert(xmlDoc.xml);

          selectNodes 方法

          作??? 用

          傳回所有符合提供樣式(pattern)的節點。

          基本語法

          objDocumentNodeList = xmlDocumentNode.selectNodes(patternString);

          說??? 明

          patternString 為一包含XSL 樣式的字符串。此方法會傳回節點清單對象,包含符合樣式的節點。如果沒有符合的節點,則傳回空的清單列表。

          范??? 例

          objNodeList=xmlDoc.selectNodes("/");
          alert(objNodeList.item(0).xml);

          selectSingleNode 傳回第一個符合樣式的節點

          作??? 用

          傳回第一個符合樣式的節點。

          基本語法

          objDocumentNode = xmlDocumentNode.selectSingleNode(patternString);

          說??? 明

          patternString 為一包含XSL 樣式的字符串。此方法會傳回第一個符合的節點對象,如果沒有符合的節點,則傳回null。

          范??? 例

          objNode = xmlDoc.selectSingleNode("EMAIL/BCC");
          alert(objNode.xml);

          transformNode 方法

          作??? 用

          使用提供的樣式表來處理該節點及其子節點。

          基本語法

          strTransformedDocument = xmlDocumentNode.transformNode(stylesheet);

          說??? 明

          stylesheet 為一XML 文件或是片斷包含負責節點轉換工作的XSL 元素。此方法會傳回一包含轉換結果的字符串。

          范??? 例

          var style = new ActiveXObject("Microsoft.XMLDOM");
          style.load("LstA_49.xsl");
          strTransform = xmlDoc.transformNode(style.documentElement);
          alert(strTransform);

          主站蜘蛛池模板: 广丰县| 大英县| 乌海市| 潜山县| 云阳县| 赣榆县| 武胜县| 武安市| 湘阴县| 宾川县| 绥棱县| 石泉县| 建宁县| 永春县| 长乐市| 双柏县| 江安县| 阿城市| 昌平区| 东明县| 香河县| 广宁县| 定远县| 九台市| 梅河口市| 堆龙德庆县| 汾阳市| 彭水| 惠来县| 交城县| 垫江县| 盐山县| 安岳县| 阜新| 巴楚县| 宁河县| 九台市| 青州市| 纳雍县| 叶城县| 屏边|