JavaScript操作Xml

     如果你做Web开发,那就难免要与JavaScript打交道。而JavaScript作为一种浏览器脚本,以其强大的功能及方便的操作,已经赢得了全部浏览器的支持。在前面我介绍了如何使用Sql操作Xml使用C#操作Xml,这里我就简单的介绍一下使用JavaScript来操作Xml数据。

     学习任何知识的最佳途径莫过于实践。这里我们从一个简单的例子出发,来讲解如何使用JavaScript来操作Xml格式数据的。由于我的水平有限,不正确或者不合理的地方还请指正。

     1、创建文档。

     大家都知道,Xml是一种基于对象的语言,也就是说,在JavaScript中,很多东西也都是面向对象的。可以使用new关键字创建一个对象。当然,创建一个Xml文档也不例外。var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.3.0");

     2、添加节点。

     其实,使用JavaScript操作Xml,和使用C#操作Xml有着几乎相同的方法。我们可以使用C#中一样的方法appendChild()方法来实现添加XML节点。说到这里你该问如何创建Xml节点了,其实还是跟C#相同的方法 var root = xmlDoc.createElement("root"); 将这个root节点添加到xmlDoc这个文档中就很简单了: xmlDoc.appendChild(root); 现在,xmlDoc中就有了一个根节点了。需要注意的是,一个Xml文档只能有一个根节点。其它的节点个数不限。

     3、得到节点。

     查询节点的方法就很多了。可以使用一个一个节点遍历,也可以使用selectSingleNode()方法或者selectNodes()方法。而得到一个文档根节点的方法则是通过属性documentElement来得到。那么得到xmlDoc的根节点就是 var rootNode = xmlDoc.documentElement;现在我们向root节点中添加一个book节点:var book = xmlDoc.createElement("book"); root.appendChild(bookNode); 那么得到book节点就是:var bookNode = root.selectSingleNode("book");或者var bookNode = root.selectNodes("book")[0]; 或者var bookNode = root.firstNode;你可以使用任何一种方法来得到自己想要的节点。

     4、删除节点。

     其实这个功能使用量是非常少的。你可以使用removeChild()方法来操作。这里不再详细说明。

     5、未提到的内容。

     对Xml的操作还远不止这些。还有对属性的增删改查的操作, 对节点值的操作。详细的说明请参照下面的这张表,这个表格来源与MSDN:

async

Specifies if asynchronous download is permitted. Read/write.

attributes

Contains the list of attributes for this node. Read-only.

baseName

Returns the base name for the name qualified with the namespace. Read-only.

childNodes

Contains a node list containing the children nodes. Read-only.

dataType

Specifies the data type for this node. Read/write.

definition

Returns the definition of the node in the document type definition (DTD) or schema. Read-only.

doctype

Contains the document type node that specifies the DTD for this document. Read-only.

documentElement

Contains the root element of the document. Read/write.

firstChild

Contains the first child of this node. Read-only.

implementation

Contains the IXMLDOMImplementation object for the document. Read-only.

lastChild

Returns the last child node. Read-only.

namespaceURI

Returns the Uniform Resource Identifier (URI) for the namespace. Read-only.

nextSibling

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

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.

nodeType

Specifies the XML Document Object Model (DOM) node type, which determines valid values and whether the node can have child nodes. Read-only.

nodeTypedValue

Contains this node's value expressed in its defined data type. Read/write.

nodeTypeString

Returns the node type in string form. Read-only.

nodeValue

Contains the text associated with the node. Read/write.

ondataavailable

Specifies the event handler for the ondataavailable event. Write-only.

onreadystatechange

Specifies the event handler to be called when the readyState property changes. Write-only.

ontransformnode

Specifies the event handler for the ontransformnode event. Write-only.

ownerDocument

Returns the root of the document that contains this node. Read-only.

parentNode

Contains the parent node. Read-only.

parsed

Indicates the parsed status of the node and child nodes. Read-only.

parseError

Returns an IXMLDOMParseError object that contains information about the last parsing error. Read-only.

prefix

Returns the namespace prefix. Read-only.

preserveWhiteSpace

Specifies the default white space handling. Read/write.

previousSibling

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

readyState

Indicates the current state of the XML document. Read-only.

resolveExternals

Indicates whether external definitions (resolvable namespaces, DTD external subsets, and external entity references) are to be resolved at parse time, independent of validation. Read/write.

specified

Indicates whether the node (usually an attribute) is explicitly specified or derived from a default value in the DTD or schema. Read-only.

text

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

url

Returns the URL for the last loaded XML document. Read-only.

validateOnParse

Indicates whether the parser should validate this document. Read/write.

xml

Contains the XML representation of the node and all its descendants. Read-only.

abort

Aborts an asynchronous download in progress.

appendChild

Appends a new child as the last child of this node.

cloneNode

Clones a new node.

createAttribute

Creates a new attribute with the specified name.

createCDATASection

Creates a CDATA section node that contains the supplied data.

createComment

Creates a comment node that contains the supplied data.

createDocumentFragment

Creates an empty IXMLDOMDocumentFragment object.

createElement

Creates an element node using the specified name.

createEntityReference

Creates a new EntityReference object.

createNode

Creates a node using the supplied type, name, and namespace.

createProcessingInstruction

Creates a processing instruction node that contains the supplied target and data.

createTextNode

Creates a text node that contains the supplied data.

getElementsByTagName

Returns a collection of elements that have the specified name.

hasChildNodes

Provides a fast way to determine whether a node has children.

insertBefore

Inserts a child node to the left of the specified node or at the end of the list.

load

Loads an XML document from the specified location.

loadXML

Loads an XML document using the supplied string.

nodeFromID

Returns the node that matches the ID attribute.

removeChild

Removes the specified child node from the list of children and returns it.

replaceChild

Replaces the specified old child node with the supplied new child node.

save

Saves an XML document to the specified location.

selectNodes

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

selectSingleNode

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

transformNode

Processes this node and its children using the supplied XSLT style sheet and returns the resulting transformation.

transformNodeToObject

Processes this node and its children using the supplied XSLT style sheet and returns the resulting transformation in the supplied object.

 

声明
作者:齐飞
Email:youring2@gmail.com
欢迎转载,但请保留本段信息!

 

posted @ 2008-12-16 19:46  拓荒者FF  阅读(5757)  评论(2编辑  收藏  举报