日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Javascript里使用Dom操作Xml

發布時間:2024/7/19 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Javascript里使用Dom操作Xml 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.本筆記使用的Xml文件

二.IXMLDOMDocument/DOMDocument簡介???

21 屬性

211 ?parseError

212 ?async.

213 ?xml

214 ?text 3

?

???????????????? 215 ?attributes

216 ?nodeName

217 ?documentElement

218 ?nextSibling

219 ?childNodes

2110 ?firstChild

2111 ?lashChild

22 方法

221 ?loadXML

222? load

223 ?selectSingleNode

224 ?selectNodes

225 ?getElementsByTagName

226 ?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下實現代碼:

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簡介

?

21 屬性

?

211 ?parseError

?

Returns an IXMLDOMParseError object that contains information about the last parsing error

返回解析錯誤時的一個對象。

重要的有parseError.errorCode,parseError.reason

如果load時路徑不對,會返回“系統未找到指定的對象”的錯誤

212 ?async

?

Specifies whether asynchronous download is permitted

是否允許異步下載,布爾值

?

?

213 ?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>”,如果Namexml,返回“<Name>c++</Name>

214 ?text

?

Represents the text content of the node or the concatenated text representing the node and its descendants. Read/write

該點及下面派生的所有點的全部節點值,可讀可寫

<price>20</price>

text20

"Name"節點的text"c++"

215 ?attributes

?

Contains the list of attributes for this node

返回屬性的集合。

216 ?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

該節點名稱

"Name"節點的nodeName"Name","book"節點的nodeName"book"

217 ?documentElement

?

Contains the root element of the document

xml的根節點

上面的xml的根節點為"book"

218 ?nextSibling

?

Contains the next sibling of the node in the parent's child list. Read-only.

下一個兄弟節點,只讀

219 ?childNodes

?

Contains a node list containing the child nodes

所有的子節點。

2110 ?firstChild

?

Contains the first child of the node

第一個子節點

2111 ?lastChild

?

Returns the last child node

最后一個子節點

?

?

22 方法

?

221 ?loadXML

?

Loads an XML document using the supplied string

222? load

?

Loads an XML document from the specified locati

參數的路徑為服務器端的,是相對路徑

223 ?selectSingleNode

?

Applies the specified pattern-matching operation to this node's context and returns the first matching node

返回第一個匹配的項

224 ?selectNodes

?

Applies the specified pattern-matching operation to this node's context and returns the list of matching nodes as IXMLDOMNodeList

符合條件的所有項。

225 ?getElementsByTagName

?

Returns a collection of elements that have the specified name

返回與元素名匹配的一個node的集合

226 ?hasChildNodes

?

Provides a fast way to determine whether a node has children

判斷是否含有子節點

返回值為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;?? //根節點

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;? //只有一個屬性,所以結果為“level1

var fNode;

var lNode;

var nextSibling;

fNode = root.firstChild;?? //第一個子節點Name

lNode = root.lastChild;??? //最后一個子節點 info

nextSibling = fNode.nextSibling;? //第一個子節點Name的后一個兄弟節點,即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("//info");? //查找元素名為"info"的節點

for (var j=0; j<nodeList.length; j++)? //有兩個info節點

{

var infoNode = nodeList.item(j);

var cldNodes = infoNode.childNodes;? //info節點的子節點集

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("//info"); //找到第一個和"info"匹配的

var scldNodes = sNode.childNodes;? //info節點的子節點集

for (var t=0; t<scldNodes.length; t++)

{

str += scldNodes.item(t).nodeName + ":" + scldNodes.item(t).text + " ";

}

//結果“k:1

Form1.test1.value = str;

轉載于:https://www.cnblogs.com/goody9807/archive/2006/06/12/424031.html

總結

以上是生活随笔為你收集整理的Javascript里使用Dom操作Xml的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。