亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Javascript里使用Dom操作Xml

 更新時間:2007年01月22日 00:00:00   作者:  
看了一天的XML資料,感覺CSDN上這篇講的挺細致的。即有Dot Net寫入XML文件的示例,又有JS讀取的示例,值得一看。(Source:http://blog.csdn.net/flypigluo)

一.本筆記使用的Xml文件
二.IXMLDOMDocument/DOMDocument簡介    
2.1 屬性
2.1.1  parseError
2.1.2  async. 
2.1.3  xml
2.1.4  text3  

2.1.5  attributes
2.1.6  nodeName
2.1.7  documentElement
2.1.8  nextSibling
2.1.9  childNodes
2.1.10  firstChild
2.1.11  lashChild
2.2 方法
2.2.1  loadXML
2.2.2 load
2.2.3  selectSingleNode
2.2.4  selectNodes
2.2.5  getElementsByTagName
2.2.6  hasChildNodes
三.例子


一.本筆記使用的Xml文件
<?xml version="1.0"?>
<book level="1">    <Name>c++</Name> 
 <Price>20</Price>  

 <info>
       <k>1</k>
 </info>


  <info>
       <k>2</k> 
 </info>  

</book>  

在asp.net下實現(xiàn)代碼:
string str = Server.MapPath("test1.xml"); 
XmlTextWriter xmlWriter = new XmlTextWriter(str,null); 
xmlWriter.Formatting = System.Xml.Formatting.Indented; 
xmlWriter.WriteStartDocument(); mlWriter.WriteStartElement("book"); 
xmlWriter.WriteAttributeString("level","1"); 
xmlWriter.WriteElementString("Name","c++"); 
xmlWriter.WriteElementString("Price","20"); 
xmlWriter.WriteStartElement("info"); 
xmlWriter.WriteElementString("k","1"); 
xmlWriter.WriteEndElement(); 
xmlWriter.WriteStartElement("info"); 
xmlWriter.WriteElementString("k","2"); 
xmlWriter.WriteEndElement(); 
xmlWriter.WriteEndElement(); 
xmlWriter.WriteEndDocument(); 

xmlWriter.Close();  

二.IXMLDOMDocument/DOMDocument簡介
2.1 屬性
2.1.1  parseError
Returns an IXMLDOMParseError object that contains information about the last parsing error
返回解析錯誤時的一個對象。
重要的有parseError.errorCode,parseError.reason
如果load時路徑不對,會返回“系統(tǒng)未找到指定的對象”的錯誤
2.1.2  async
Specifies whether asynchronous download is permitted
是否允許異步下載,布爾值
2.1.3  xml 

Contains the XML representation of the node and all its descendants. Read-only.
該點及下面派生的所有點的全部信息,只讀如果要求book點的xml,返回“<book level="1"><Name>c++</Name><Price>20</Price><info><k>1</k></info><info><k>2</k></info></book>”,如果Name的xml,返回“<Name>c++</Name>”
2.1.4  text
Represents the text content of the node or the concatenated text representing the node and its descendants. Read/write
該點及下面派生的所有點的全部節(jié)點值,可讀可寫
<price>20</price>
則text為20
"Name"節(jié)點的text為"c++"
2.1.5  attributes
Contains the list of attributes for this node
返回屬性的集合。
2.1.6  nodeName
Returns the qualified name for attribute, document type, element, entity, or notation nodes. Returns a fixed string for all 
other node types. Read-only
該節(jié)點名稱
"Name"節(jié)點的nodeName為"Name","book"節(jié)點的nodeName為"book"
2.1.7  documentElement
Contains the root element of the document
xml的根節(jié)點
上面的xml的根節(jié)點為"book"
2.1.8  nextSibling
Contains the next sibling of the node in the parent's child list. Read-only.
下一個兄弟節(jié)點,只讀
2.1.9  childNodes
Contains a node list containing the child nodes
所有的子節(jié)點。
2.1.10  firstChild
Contains the first child of the node
第一個子節(jié)點
2.1.11  lastChild
Returns the last child node
最后一個子節(jié)點



2.2 方法
2.2.1  loadXML
Loads an XML document using the supplied string
2.2.2 load
Loads an XML document from the specified locati
參數(shù)的路徑為服務器端的,是相對路徑
2.2.3  selectSingleNode
Applies the specified pattern-matching operation to this node's context and returns the first matching node
返回第一個匹配的項
2.2.4  selectNodes
Applies the specified pattern-matching operation to this node's context and returns the list of matching nodes as IXMLDOMNodeList
符合條件的所有項。
2.2.5  getElementsByTagName
Returns a collection of elements that have the specified name
返回與元素名匹配的一個node的集合
2.2.6  hasChildNodes
Provides a fast way to determine whether a node has children
判斷是否含有子節(jié)點
返回值為bool值



三.例子
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.3.0");
xmlDoc.async = false;
xmlDoc.load("test\\test1.xml");
if (xmlDoc.parseError.errorCode!=0)
{
var error = xmlDoc.parseError;
  alert(error.reason)
return;
}
var root = xmlDoc.documentElement;   //根節(jié)點
Form1.test1.value = root.xml;
/*結果如下:
<book level="1"><Name>c++</Name><Price>20</Price><info><k>1</k></info><info><k>2</k></info></book>*/
Form1.test1.value = root.nodeName; //結果為"book"
var att = root.attributes; //得到該點下所有屬性的集合
var str = "";
for (var i=0; i<att.length; i++)
{
str += att.item(i).nodeName+":"+att.item(i).text;
}
Form1.test1.value = str; //只有一個屬性,所以結果為“l(fā)evel:1”
var fNode;
var lNode;
var nextSibling;
fNode = root.firstChild;   //第一個子節(jié)點Name
lNode = root.lastChild;    //最后一個子節(jié)點 info
nextSibling = fNode.nextSibling; //第一個子節(jié)點Name的后一個兄弟節(jié)點,即Price
str = fNode.nodeName + ":" + fNode.text; //結果:"Name:c++"
str = lNode.nodeName + ":" + lNode.text; //結果為:"info:2"
str = nextSibling.nodeName + ":" + nextSibling.text; //結果為:"Price:20"
var nodeList;
str = "";
nodeList = xmlDoc.selectNodes("http://info"); //查找元素名為"info"的節(jié)點
for (var j=0; j<nodeList.length; j++) //有兩個info節(jié)點
{
var infoNode = nodeList.item(j);
var cldNodes = infoNode.childNodes; //info節(jié)點的子節(jié)點集
for (var k=0; k<cldNodes.length; k++)
{
       str += cldNodes.item(k).nodeName + ":" + cldNodes.item(k).text + " ";
}
//結果“k:1 k:2 ”
}
str = "";
var sNode;
sNode = xmlDoc.selectSingleNode("http://info"); //找到第一個和"info"匹配的
var scldNodes = sNode.childNodes; //info節(jié)點的子節(jié)點集
for (var t=0; t<scldNodes.length; t++)
{
str += scldNodes.item(t).nodeName + ":" + scldNodes.item(t).text + " ";
}
//結果“k:1”
Form1.test1.value = str;

相關文章

  • javascript 操作cookies及正確使用cookies的屬性

    javascript 操作cookies及正確使用cookies的屬性

    在 JS(JavaScript) 操作cookies比較復雜,在 ASP 里面我們只需要知道 cookie 的名稱、cookie 的值就行了,而 JS 里面,我們面對的是 cookie 的字符串,你自己編寫這個字符串寫入客戶端,然后自己解析這個字符串。
    2009-10-10
  • js圖片切換具體實現(xiàn)代碼

    js圖片切換具體實現(xiàn)代碼

    這篇文章主要為大家詳細介紹了js實現(xiàn)圖片切換代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 淺談js函數(shù)的多種定義方法與區(qū)別

    淺談js函數(shù)的多種定義方法與區(qū)別

    下面小編就為大家?guī)硪黄獪\談js函數(shù)的多種定義方法與區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • 中止javascript執(zhí)行的方法

    中止javascript執(zhí)行的方法

    本篇文章主要是對中止javascript執(zhí)行的方法進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-02-02
  • 詳解如何編寫一個Typescript的類型聲明文件

    詳解如何編寫一個Typescript的類型聲明文件

    我們知道TypeScript根據(jù)類型聲明進行類型檢查,但有些情況可能沒有類型聲明,這個時候就需要我們自己寫一個,下面小編就來和大家聊聊如果寫一個Typescript的類型聲明文件呢
    2023-06-06
  • 原生js實現(xiàn)省市區(qū)三級聯(lián)動代碼分享

    原生js實現(xiàn)省市區(qū)三級聯(lián)動代碼分享

    這篇文章主要介紹了原生js實現(xiàn)省市區(qū)三級聯(lián)動功能以及代碼分享,對此有需要的朋友可以參考學習下。
    2018-02-02
  • js判斷登陸用戶名及密碼是否為空的簡單實例

    js判斷登陸用戶名及密碼是否為空的簡單實例

    下面小編就為大家?guī)硪黄猨s判斷登陸用戶名及密碼是否為空的簡單實例。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • JavaScript關于提高網站性能的幾點建議(一)

    JavaScript關于提高網站性能的幾點建議(一)

    這篇文章主要介紹了JavaScript關于提高網站性能的幾點建議(一)的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • javascript中的self和this用法小結

    javascript中的self和this用法小結

    本篇文章主要是對javascript中的self和this用法進行了詳細的總結介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-02-02
  • JS 兩個字符串時間的天數(shù)差計算

    JS 兩個字符串時間的天數(shù)差計算

    本文為大家介紹下兩個字符串時間的天數(shù)差的計算公式,感興趣的朋友可以參考下
    2013-08-08

最新評論