Javascript里使用Dom操作Xml
更新時(shí)間:2006年09月20日 00:00:00 作者:
一.Xml文件
二.IXMLDOMDocument/DOMDocument簡(jiǎn)介
2.1 屬性
2.1.1 parseError
2.1.2 async.
2.1.3 xml
2.1.4 text 3
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下實(shí)現(xiàn)代碼:
string str = Server.MapPath("test1.xml");
XmlTextWriter xmlWriter = new XmlTextWriter(str,null);
xmlWriter.Formatting = System.Xml.Formatting.Indented;
xmlWriter.WriteStartDocument();
xmlWriter.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簡(jiǎn)介
2.1 屬性
2.1.1 parseError
Returns an IXMLDOMParseError object that contains information about the last parsing error
返回解析錯(cuò)誤時(shí)的一個(gè)對(duì)象。
重要的有parseError.errorCode,parseError.reason
如果load時(shí)路徑不對(duì),會(huì)返回“系統(tǒng)未找到指定的對(duì)象”的錯(cuò)誤
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.
該點(diǎn)及下面派生的所有點(diǎn)的全部信息,只讀如果要求book點(diǎn)的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
該點(diǎn)及下面派生的所有點(diǎn)的全部節(jié)點(diǎn)值,可讀可寫
<price>20</price>
則text為20
"Name"節(jié)點(diǎn)的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é)點(diǎn)名稱
"Name"節(jié)點(diǎn)的nodeName為"Name","book"節(jié)點(diǎn)的nodeName為"book"
2.1.7 documentElement
Contains the root element of the document
xml的根節(jié)點(diǎn)
上面的xml的根節(jié)點(diǎn)為"book"
2.1.8 nextSibling
Contains the next sibling of the node in the parent's child list. Read-only.
下一個(gè)兄弟節(jié)點(diǎn),只讀
2.1.9 childNodes
Contains a node list containing the child nodes
所有的子節(jié)點(diǎn)。
2.1.10 firstChild
Contains the first child of the node
第一個(gè)子節(jié)點(diǎn)
2.1.11 lastChild
Returns the last child node
最后一個(gè)子節(jié)點(diǎn)
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ù)的路徑為服務(wù)器端的,是相對(duì)路徑
2.2.3 selectSingleNode
Applies the specified pattern-matching operation to this node's context and returns the first matching node
返回第一個(gè)匹配的項(xiàng)
2.2.4 selectNodes
Applies the specified pattern-matching operation to this node's context and returns the list of matching nodes as IXMLDOMNodeList
符合條件的所有項(xiàng)。
2.2.5 getElementsByTagName
Returns a collection of elements that have the specified name
返回與元素名匹配的一個(gè)node的集合
2.2.6 hasChildNodes
Provides a fast way to determine whether a node has children
判斷是否含有子節(jié)點(diǎn)
返回值為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é)點(diǎn)
Form1.test1.value = root.xml;
/*結(jié)果如下:
<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; //結(jié)果為"book"
var att = root.attributes; //得到該點(diǎn)下所有屬性的集合
var str = "";
for (var i=0; i<att.length; i++)
{
str += att.item(i).nodeName+":"+att.item(i).text;
}
Form1.test1.value = str; //只有一個(gè)屬性,所以結(jié)果為“l(fā)evel:1”
var fNode;
var lNode;
var nextSibling;
fNode = root.firstChild; //第一個(gè)子節(jié)點(diǎn)Name
lNode = root.lastChild; //最后一個(gè)子節(jié)點(diǎn) info
nextSibling = fNode.nextSibling; //第一個(gè)子節(jié)點(diǎn)Name的后一個(gè)兄弟節(jié)點(diǎn),即Price
str = fNode.nodeName + ":" + fNode.text; //結(jié)果:"Name:c++"
str = lNode.nodeName + ":" + lNode.text; //結(jié)果為:"info:2"
str = nextSibling.nodeName + ":" + nextSibling.text; //結(jié)果為:"Price:20"
var nodeList;
str = "";
nodeList = xmlDoc.selectNodes("http://info"); //查找元素名為"info"的節(jié)點(diǎn)
for (var j=0; j<nodeList.length; j++) //有兩個(gè)info節(jié)點(diǎn)
{
var infoNode = nodeList.item(j);
var cldNodes = infoNode.childNodes; //info節(jié)點(diǎn)的子節(jié)點(diǎn)集
for (var k=0; k<cldNodes.length; k++)
{
str += cldNodes.item(k).nodeName + ":" + cldNodes.item(k).text + " ";
}
//結(jié)果“k:1 k:2 ”
}
str = "";
var sNode;
sNode = xmlDoc.selectSingleNode("http://info"); //找到第一個(gè)和"info"匹配的
var scldNodes = sNode.childNodes; //info節(jié)點(diǎn)的子節(jié)點(diǎn)集
for (var t=0; t<scldNodes.length; t++)
{
str += scldNodes.item(t).nodeName + ":" + scldNodes.item(t).text + " ";
}
//結(jié)果“k:1”
Form1.test1.value = str;
二.IXMLDOMDocument/DOMDocument簡(jiǎn)介
2.1 屬性
2.1.1 parseError
2.1.2 async.
2.1.3 xml
2.1.4 text 3
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下實(shí)現(xiàn)代碼:
string str = Server.MapPath("test1.xml");
XmlTextWriter xmlWriter = new XmlTextWriter(str,null);
xmlWriter.Formatting = System.Xml.Formatting.Indented;
xmlWriter.WriteStartDocument();
xmlWriter.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簡(jiǎn)介
2.1 屬性
2.1.1 parseError
Returns an IXMLDOMParseError object that contains information about the last parsing error
返回解析錯(cuò)誤時(shí)的一個(gè)對(duì)象。
重要的有parseError.errorCode,parseError.reason
如果load時(shí)路徑不對(duì),會(huì)返回“系統(tǒng)未找到指定的對(duì)象”的錯(cuò)誤
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.
該點(diǎn)及下面派生的所有點(diǎn)的全部信息,只讀如果要求book點(diǎn)的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
該點(diǎn)及下面派生的所有點(diǎn)的全部節(jié)點(diǎn)值,可讀可寫
<price>20</price>
則text為20
"Name"節(jié)點(diǎn)的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é)點(diǎn)名稱
"Name"節(jié)點(diǎn)的nodeName為"Name","book"節(jié)點(diǎn)的nodeName為"book"
2.1.7 documentElement
Contains the root element of the document
xml的根節(jié)點(diǎn)
上面的xml的根節(jié)點(diǎn)為"book"
2.1.8 nextSibling
Contains the next sibling of the node in the parent's child list. Read-only.
下一個(gè)兄弟節(jié)點(diǎn),只讀
2.1.9 childNodes
Contains a node list containing the child nodes
所有的子節(jié)點(diǎn)。
2.1.10 firstChild
Contains the first child of the node
第一個(gè)子節(jié)點(diǎn)
2.1.11 lastChild
Returns the last child node
最后一個(gè)子節(jié)點(diǎn)
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ù)的路徑為服務(wù)器端的,是相對(duì)路徑
2.2.3 selectSingleNode
Applies the specified pattern-matching operation to this node's context and returns the first matching node
返回第一個(gè)匹配的項(xiàng)
2.2.4 selectNodes
Applies the specified pattern-matching operation to this node's context and returns the list of matching nodes as IXMLDOMNodeList
符合條件的所有項(xiàng)。
2.2.5 getElementsByTagName
Returns a collection of elements that have the specified name
返回與元素名匹配的一個(gè)node的集合
2.2.6 hasChildNodes
Provides a fast way to determine whether a node has children
判斷是否含有子節(jié)點(diǎn)
返回值為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é)點(diǎn)
Form1.test1.value = root.xml;
/*結(jié)果如下:
<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; //結(jié)果為"book"
var att = root.attributes; //得到該點(diǎn)下所有屬性的集合
var str = "";
for (var i=0; i<att.length; i++)
{
str += att.item(i).nodeName+":"+att.item(i).text;
}
Form1.test1.value = str; //只有一個(gè)屬性,所以結(jié)果為“l(fā)evel:1”
var fNode;
var lNode;
var nextSibling;
fNode = root.firstChild; //第一個(gè)子節(jié)點(diǎn)Name
lNode = root.lastChild; //最后一個(gè)子節(jié)點(diǎn) info
nextSibling = fNode.nextSibling; //第一個(gè)子節(jié)點(diǎn)Name的后一個(gè)兄弟節(jié)點(diǎn),即Price
str = fNode.nodeName + ":" + fNode.text; //結(jié)果:"Name:c++"
str = lNode.nodeName + ":" + lNode.text; //結(jié)果為:"info:2"
str = nextSibling.nodeName + ":" + nextSibling.text; //結(jié)果為:"Price:20"
var nodeList;
str = "";
nodeList = xmlDoc.selectNodes("http://info"); //查找元素名為"info"的節(jié)點(diǎn)
for (var j=0; j<nodeList.length; j++) //有兩個(gè)info節(jié)點(diǎn)
{
var infoNode = nodeList.item(j);
var cldNodes = infoNode.childNodes; //info節(jié)點(diǎn)的子節(jié)點(diǎn)集
for (var k=0; k<cldNodes.length; k++)
{
str += cldNodes.item(k).nodeName + ":" + cldNodes.item(k).text + " ";
}
//結(jié)果“k:1 k:2 ”
}
str = "";
var sNode;
sNode = xmlDoc.selectSingleNode("http://info"); //找到第一個(gè)和"info"匹配的
var scldNodes = sNode.childNodes; //info節(jié)點(diǎn)的子節(jié)點(diǎn)集
for (var t=0; t<scldNodes.length; t++)
{
str += scldNodes.item(t).nodeName + ":" + scldNodes.item(t).text + " ";
}
//結(jié)果“k:1”
Form1.test1.value = str;
您可能感興趣的文章:
- js使用DOM操作實(shí)現(xiàn)簡(jiǎn)單留言板的方法
- javascript拓展DOM操作 prependChild insertAfert
- javascript DOM操作之動(dòng)態(tài)刪除TABLE多行
- javascript中HTMLDOM操作詳解
- 簡(jiǎn)單實(shí)現(xiàn)JS對(duì)dom操作封裝
- JavaScript DOM操作表格及樣式
- JavaScript基礎(chǔ)語法、dom操作樹及document對(duì)象
- JavaScript基于Dom操作實(shí)現(xiàn)查找、修改HTML元素的內(nèi)容及屬性的方法
- JavaScript中 DOM操作方法小結(jié)
- JavaScript學(xué)習(xí)筆記之DOM操作實(shí)例分析
相關(guān)文章
H5如何實(shí)現(xiàn)喚起APP及調(diào)試bug解決
這篇文章主要為大家介紹了H5如何實(shí)現(xiàn)喚起APP及調(diào)試bug解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
jQuery 表單驗(yàn)證插件formValidation實(shí)現(xiàn)個(gè)性化錯(cuò)誤提示
這里介紹另外一個(gè)表單驗(yàn)證插件formValidation,這個(gè)插件與前面兩個(gè)插件的最大區(qū)別在于它實(shí)現(xiàn)了個(gè)性化的錯(cuò)誤提示信息,顯示在表單元素右上角類似于提示條2009-06-06
javascript實(shí)現(xiàn)的簡(jiǎn)單計(jì)時(shí)器
計(jì)時(shí)器提供了一 個(gè)可以將代碼片段異步延時(shí)執(zhí)行的能力,javascript生來是單線程的(在一定時(shí)間范圍內(nèi)僅一部分js代碼能運(yùn)行),計(jì)時(shí)器為我們提供了一種避開這種 限制的方法,從而開辟了另一條執(zhí)行代碼的蹊徑。2015-07-07
javascript實(shí)現(xiàn)懸浮跟隨框緩動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)懸浮跟隨框緩動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Javascript DOM的簡(jiǎn)介,節(jié)點(diǎn)和獲取元素詳解
下面小編就為大家分享一篇詳談DOM的簡(jiǎn)介,節(jié)點(diǎn)和獲取元素,具有非常好的參考價(jià)值,一起跟隨小編過來看看吧,希望對(duì)大家有所幫助2021-11-11
JS中使用gulp實(shí)現(xiàn)壓縮文件及瀏覽器熱加載功能
這篇文章主要介紹了JS中使用gulp實(shí)現(xiàn)壓縮文件及瀏覽器熱加載功能,需要的朋友可以參考下2017-07-07
js實(shí)現(xiàn)點(diǎn)擊按鈕彈出上傳文件的窗口
本文主要介紹了js實(shí)現(xiàn)點(diǎn)擊按鈕彈出上傳文件的窗口的實(shí)例方法。具有很好的參考價(jià)值,需要的朋友一起來看下吧2016-12-12
javascript實(shí)現(xiàn)給定半徑求出圓的面積
這篇文章主要介紹了javascript實(shí)現(xiàn)給定半徑求出圓的面積的相關(guān)資料,需要的朋友可以參考下2015-06-06

