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)值,可讀可寫(xiě)
<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)值,可讀可寫(xiě)
<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ǔ)語(yǔ)法、dom操作樹(shù)及document對(duì)象
- JavaScript基于Dom操作實(shí)現(xiàn)查找、修改HTML元素的內(nèi)容及屬性的方法
- JavaScript中 DOM操作方法小結(jié)
- JavaScript學(xué)習(xí)筆記之DOM操作實(shí)例分析
相關(guān)文章
利用JavaScript實(shí)現(xiàn)一個(gè)日期范圍選擇器
日期范圍選擇器是一個(gè)常見(jiàn)的Web應(yīng)用功能,它允許用戶選擇一個(gè)日期范圍,本文我們將使用JavaScript來(lái)實(shí)現(xiàn)這個(gè)功能,感興趣的小伙伴可以了解下2024-01-01關(guān)于導(dǎo)入excel時(shí)js轉(zhuǎn)換時(shí)間的正確方式
這篇文章主要給大家介紹了關(guān)于導(dǎo)入excel時(shí)js轉(zhuǎn)換時(shí)間的正確方式,以及js讀取excel中日期格式轉(zhuǎn)換問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09js實(shí)現(xiàn)列表向上無(wú)限滾動(dòng)
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)列表向上無(wú)限滾動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-01-01如何將php數(shù)組或者對(duì)象傳遞給javascript
這篇文章主要介紹了將php數(shù)組或者對(duì)象傳遞給javascript的方法,需要的朋友可以參考下2014-03-03推薦4個(gè)原生javascript常用的函數(shù)
這篇文章主要介紹了推薦4個(gè)原生javascript常用的函數(shù),需要的朋友可以參考下2015-01-01javascript腳本編程解決考試分?jǐn)?shù)統(tǒng)計(jì)問(wèn)題
該考試題目共有25道,每一道都是2選1的選擇題,總分是100分。那么javascript的代碼如下2008-10-10