« | July 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | |
| 公告 |
暂无公告... |
Blog信息 |
blog名称: 日志总数:10 评论数量:25 留言数量:0 访问次数:89379 建立时间:2005年3月7日 |

| |
[xml]XMLDOM属性列表 文章收藏
guan1200 发表于 2005/6/23 10:44:41 |
The Microsoft XML Parser
To create an XML Document object with JavaScript, use the following code:
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM")xmlDoc.appendChild(xmlDoc.createElement("root"))
XML Parser in Mozilla Browsers
Plain XML documents are displayed in a tree-like structure in Mozilla (just like IE).
Mozilla also supports parsing of XML data that resides in a file, using JavaScript. The parsed data can be displayed as HTML.
To create an XML Document object with JavaScript in Mozilla, use the following code:
var xmlDoc=document.implementation.createDocument("ns","root",null)
The first parameter, ns, defines the namespace used for the XML document. The second parameter, root, is the XML root element in the XML file. The third parameter, null, is always null because it is not implemented yet.
Loading an XML File Into the Parser
The following code loads an existing XML document ("note.xml") into the XML parser:
<script type="text/javascript">var xmlDoc=new ActiveXObject("Microsoft.XMLDOM")xmlDoc.async="false"xmlDoc.load("note.xml").........</script>//ie和firefox都支持load,firefox不支持loadXML(string text)
The first line of the script creates an instance of
the Microsoft XML parser. The third line tells the parser to load an
XML document called "note.xml". The second line turns off asynchronized
loading, to make sure that the parser will not continue execution of
the script before the document is fully loaded.
Accessing XML Elements by Name
Addressing elements by number is NOT the preferred way to extract elements from XML documents. Using names is a better way:
<script type="text/javascript">function loadXML(){var xmlDoc=new ActiveXObject("Microsoft.XMLDOM")xmlDoc.async="false"xmlDoc.load("note.xml")//注意firefox的load("note.xml")并不会读该文件,须要给fox增加loadXML()涵数xmlDoc.getElementsByTagName("to").item(0).textxmlDoc.getElementsByTagName("from").item(0).textxmlDoc.getElementsByTagName("heading").item(0).textxmlDoc.getElementsByTagName("body").item(0).text}</script>
Important: To extract the text (Jani) from an
element like this: <from>Jani</from>, the syntax is:
getElementsByTagName("from").item(0).text, and NOT like this:
getElementsByTagName("from").text. The reason for this is that the
result returned from getElementsByTagName is an array of nodes,
containing all nodes found within the XML document with the specified
tag name (in this case "from").
The XMLHttpRequest object is supported in Internet Explorer 5.0+, Safari 1.2, Mozilla 1.0 / Firefox, and Netscape 7.
What is an HTTP Request?
With an HTTP request, a web page can make a request
to, and get a response from a web server - without reloading the page.
The user will stay on the same page, and he or she will not notice that
scripts might request pages, or send data to a server in the background.
By using the XMLHttpRequest object, a web developer can change a page with data from the server after the page has loaded.
Google Suggest
is using the XMLHttpRequest object to create a very dynamic web
interface: When you start typing in Google's search box, a JavaScript
sends the letters off to a server and the server returns a list of
suggestions.
Creating an XMLHttpRequest Object
For Mozilla, Firefox, Safari, and Netscape:
var xmlhttp=new XMLHttpRequest()
For Internet Explorer:
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
Example
<script type="text/javascript">var xmlhttpfunction loadXMLDoc(url){// code for Mozilla, etc.if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest() xmlhttp.onreadystatechange=xmlhttpChange xmlhttp.open("GET",url,true) xmlhttp.send(null) }// code for IEelse if (window.ActiveXObject) { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP") if (xmlhttp) { xmlhttp.onreadystatechange=xmlhttpChange xmlhttp.open("GET",url,true) xmlhttp.send() } }}function xmlhttpChange(){// if xmlhttp shows "loaded"if (xmlhttp.readyState==4) { // if "OK" if (xmlhttp.status==200) { // ...some code here... } else { alert("Problem retrieving XML data") } }}</script>
Why are we Using async in our Examples?
Most of the examples here use the async mode (the third parameter of open() set to true).
The async parameter specifies whether the request
should be handled asynchronously or not. True means that script
continues to run after the send() method, without waiting for a
response from the server. false means that the script waits for a
response before continuing script processing. By setting this parameter
to false, you run the risk of having your script hang if there is a
network or server problem, or if the request is long (the UI locks
while the request is being made) a user may even see the "Not
Responding" message. It is safer to send asynchronously and design your
code around the onreadystatechange event
The XMLHttpRequest Object Reference
Methods
Method
Description
abort()
Cancels the current request
getAllResponseHeaders()
Returns the complete set of http headers as a string
getResponseHeader("headername")
Returns the value of the specified http header
open("method","URL",async,"uname","pswd")
Specifies the method, URL, and other optional attributes of a request
The method parameter can have a value of
"GET", "POST", or "PUT" (use "GET" when requesting data and use "POST"
when sending data (especially if the length of the data is greater than
512 bytes.
The URL parameter may be either a relative or complete URL.
The async parameter specifies whether the request
should be handled asynchronously or not. true means that script
processing carries on after the send() method, without waiting for a
response. false means that the script waits for a response before
continuing script processing
send(content)
Sends the request
setRequestHeader("label","value")
Adds a label/value pair to the http header to be sent
Properties
Property
Description
onreadystatechange
An event handler for an event that fires at every state change
readyState
Returns the state of the object:
0 = uninitialized
1 = loading
2 = loaded
3 = interactive
4 = complete
responseText
Returns the response as a string
responseXML
Returns the response as XML. This property returns
an XML document object, which can be examined and parsed using W3C DOM
node tree methods and properties
status
Returns the status as a number (e.g. 404 for "Not Found" or 200 for "OK")
statusText
Returns the status as a string (e.g. "Not Found" or "OK")
XML DOM Node Types
The DOM Structure
The DOM presents a document as a hierarchy of node objects.
The following table lists the different W3C node types, and which node types they may have as children:
Node type
Description
Children
Document
Represents the entire document (it is the root-node of the DOM tree)
Element (max. one), ProcessingInstruction, Comment, DocumentType
DocumentFragment
Represents a "lightweight" Document object, which can hold a portion of a document
Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference
DocumentType
Represents a list of the entities that are defined for the document
None
EntityReference
Represents an entity reference
Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference
Element
Represents an element
Element, Text, Comment, ProcessingInstruction, CDATASection, EntityReference
Attr
Represents an attribute
Text, EntityReference
ProcessingInstruction
Represents a "processing instruction"
None
Comment
Represents a comment
None
Text
Represents textual content (character data) in an element or attribute
None
CDATASection
Represents a block of text that may contains characters that would otherwise be treated as markup
None
Entity
Represents an entity
Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference
Notation
Represents a notation declared in the DTD
None
Node Types - Return Values
Below is a list of what the nodeName and the nodeValue properties will return for each nodetype:
Node type
nodeName returns
nodeValue returns
Document
#document
null
DocumentFragment
#document fragment
null
DocumentType
doctype name
null
EntityReference
entity reference name
null
Element
element name
null
Attr
attribute name
attribute value
ProcessingInstruction
target
content of node
Comment
#comment
comment text
Text
#text
content of node
CDATASection
#cdata-section
content of node
Entity
entity name
null
Notation
notation name
null
NodeTypes - Named Constants
NodeType
Named Constant
1
ELEMENT_NODE
2
ATTRIBUTE_NODE
3
TEXT_NODE
4
CDATA_SECTION_NODE
5
ENTITY_REFERENCE_NODE
6
ENTITY_NODE
7
PROCESSING_INSTRUCTION_NODE
8
COMMENT_NODE
9
DOCUMENT_NODE
10
DOCUMENT_TYPE_NODE
11
DOCUMENT_FRAGMENT_NODE
12
NOTATION_NODE
XML DOM - The Attr Object
The Attr object
The attr object represents an attribute of an element object.
The attr object's properties and methods are described below:
Properties
Property
Description
attributes
Returns a NamedNodeMap that contains all attributes of a node
childNodes
Returns a node list that contains all children of a node
firstChild
Returns the first child node of a node
lastChild
Returns the last child node of a node
name
Returns the name of the attribute
nextSibling
Returns the node immediately following a node. Two nodes are siblings if they have the same parent node
nodeName
Returns the name of the node (depending on the node type)
nodeType
Returns the node type as a number
nodeValue
Returns the value of the node
ownerDocument
Returns the Document object of a node (returns the root node of the document)
parentNode
Returns the parent node of a node
previousSibling
Returns the node immediately preceding a node. Two nodes are siblings if they have the same parent node
value
Returns the value of the attribute
Methods
Method
Description
appendChild(tagname)
Appends a new child node to a node
cloneNode(boolean)
Creates an exact clone node of a node.
If the boolean parameter is set to true, the cloned node clones all the
child nodes of the original node as well
hasChildNodes()
Returns true if a node has child nodes. Otherwise it returns false
insertBefore(newnode,refnode)
Inserts a new node (newnode) before the existing node (refnode)
removeChild(nodename)
Removes the specified node and returns it
replaceChild(newnode,oldnode)
Replaces the oldnode with the newnode, and returns the oldnode
The CDATASection comment object
The CDATASection object represents CDATASection nodes
in a document. A CDATASection node is used to escape parts of text
which normally would be recognized as markup.
The CDATASection object's properties and methods are described below:
Properties
Property
Description
attributes
Returns a NamedNodeMap that contains all attributes of a node
childNodes
Returns a node list that contains all children of a node
data
Returns the data of the node
firstChild
Returns the first child node of a node
lastChild
Returns the last child node of a node
length
Returns the length of the data (in characters)
nextSibling
Returns the node immediately following a node. Two nodes are siblings if they have the same parent node
nodeName
Returns the name of the node (depending on the node type)
nodeType
Returns the node type as a number
nodeValue
Returns the value of the node
ownerDocument
Returns the Document object of a node (returns the root node of the document)
parentNode
Returns the parent node of a node
previousSibling
Returns the node immediately preceding a node. Two nodes are siblings if they have the same parent node
Methods
Method
Description
appendChild(tagname)
Appends a new child node to a node
appendData(strdata)
Appends the specified string to the existing data
cloneNode(boolean)
Creates an exact clone node of a node.
If the boolean parameter is set to true, the cloned node clones all the
child nodes of the original node as well
deleteData(offset,count)
Removes the specified range of characters from the data
hasChildNodes()
Returns true if a node has child nodes. Otherwise it returns false
insertBefore(newnode,refnode)
Inserts a new node (newnode) before the existing node (refnode)
insertData(offset,string)
Inserts the stringdata at the specified offset
removeChild(nodename)
Removes the specified node and returns it
replaceChild(newnode,oldnode)
Replaces the oldnode with the newnode, and returns the oldnode
replaceData(offset,count,stringdata)
Replaces the characters from the specified offset with the stringdata
The Document object
The document object is the root element in the node-tree. All nodes in the node tree are child nodes of the document object.
The document object's properties, methods, and events are described below:
Properties
Property
Description
attributes
Returns a NamedNodeMap that contains all attributes of a node
childNodes
Returns a node list that contains all children of a node
doctype
Returns the DTD or Schema for the document
documentElement
Returns the root element of the document
firstChild
Returns the first child node of a node
implementation
Returns the DOMImplementation object for this particular document
lastChild
Returns the last child node of a node
nextSibling
Returns the node immediately following a node. Two nodes are siblings if they have the same parent node
nodeName
Returns the name of the node
nodeType
Returns the node type as a number
nodeValue
Returns the value of the node
ownerDocument
Returns the Document object of a node (returns the root node of the document)
parentNode
Returns the parent node of a node
previousSibling
Returns the node immediately preceding a node. Two nodes are siblings if they have the same parent node
Methods
Method
Description
appendChild(tagname)
Appends a new child node to a node
cloneNode(boolean)
Creates an exact clone node of a node.
If the boolean parameter is set to true, the cloned node clones all the
child nodes of the original node as well
createAttribute(attrname)
Creates an Attr node with the specified name
createCDATASection(text)
Creates a CDATASection node, containing the specified text
createComment(text)
Creates a comment node, containing the specified text
createDocumentFragment()
Creates an empty documentFragment object
createElement(tagname)
Creates an element node with the specified name
createEntityReference(refname)
Creates an entityReference node with the specified name
createProcessingInstruction(target,text)
Creates a processingInstruction node, containing the specified target and text
createTextNode(text)
Creates a text node, containing the specified text
getElementsByTagName(tagname)
Returns the specified node, and all its child nodes, as a node list
hasChildNodes()
Returns true if a node has child nodes. Otherwise it returns false
insertBefore(newnode,refnode)
Inserts a new node (newnode) before the existing node (refnode)
removeChild(nodename)
Removes the specified node and returns it
replaceChild(newnode,oldnode)
Replaces the oldnode with the newnode, and returns the oldnode
The Element object
The element object represents the element nodes in
the document. If the element node contains text, this text is
represented in a text node.
The element object's properties and methods are described below:
Properties
Property
Description
attributes
Returns a NamedNodeMap that contains all attributes of a node
childNodes
Returns a node list that contains all children of a node
firstChild
Returns the first child node of a node
lastChild
Returns the last child node of a node
nextSibling
Returns the node immediately following a node. Two nodes are siblings if they have the same parent node
nodeName
Returns the name of the node (depending on the node type)
nodeType
Returns the node type as a number
nodeValue
Returns the value of the node
ownerDocument
Returns the Document object of a node (returns the root node of the document)
parentNode
Returns the parent node of a node
previousSibling
Returns the node immediately preceding a node. Two nodes are siblings if they have the same parent node
tagName
Returns the name of the element node
Methods
Method
Description
appendChild(tagname)
Appends a new child node to a node
cloneNode(boolean)
Creates an exact clone node of a node.
If the boolean parameter is set to true, the cloned node clones all the
child nodes of the original node as well
getAttribute(attrname)
Returns the value of the specified attribute
getAttributeNode(attrname)
Returns the specified attribute node as an Attr object
getElementsByTagName(tagname)
Returns the specified node, and all its child nodes, as a node list
hasChildNodes()
Returns true if a node has child nodes. Otherwise it returns false
insertBefore(newnode,refnode)
Inserts a new node (newnode) before the existing node (refnode)
normalize()
Combines all subtree Text nodes into a single one
removeAttribute(attrname)
Removes the specified attribute's value
removeAttributeNode(attriname)
Removes the specified attribute node
removeChild(nodename)
Removes the specified node and returns it
replaceChild(newnode,oldnode)
Replaces the oldnode with the newnode, and returns the oldnode
setAttribute(attrname,attrvalue)
Sets the value of the named attribute
setAttributeNode(attrname)
Inserts the specified new attribute to the element
The Node Object
The node object represents a node in the node-tree.
The node object's properties and methods are described below:
Properties
Property
Description
attributes
Returns a NamedNodeMap that contains all attributes of a node
childNodes
Returns a node list that contains all children of a node
firstChild
Returns the first child node of a node
lastChild
Returns the last child node of a node
nextSibling
Returns the node immediately following a node. Two nodes are siblings if they have the same parent node
nodeName
Returns the name of the node (depending on the node type)
nodeType
Returns the node type as a number
nodeValue
Returns the value of the node
ownerDocument
Returns the Document object of a node (returns the root node of the document)
parentNode
Returns the parent node of a node
previousSibling
Returns the node immediately preceding a node. Two nodes are siblings if they have the same parent node
Methods
Method
Description
appendChild(tagname)
Appends a new child node to a node
cloneNode(boolean)
Creates an exact clone node of a node.
If the boolean parameter is set to true, the cloned node clones all the
child nodes of the original node as well
hasChildNodes()
Returns true if a node has child nodes. Otherwise it returns false
insertBefore(newnode,refnode)
Inserts a new node (newnode) before the existing node (refnode)
removeChild(nodename)
Removes the specified node and returns it
replaceChild(newnode,oldnode)
Replaces the oldnode with the newnode, and returns the oldnode
The NodeList object
The nodeList object represents a node and its child nodes as a node-tree.
The nodeList object's properties and methods are described below:
Properties
Property
Description
length
Returns the number of items in the node list
Methods
Method
Description
item(index)
Returns the item at the specified index in the node list
The Text object
The text object represents the text of an attribute or element object.
The text object's properties and methods are described below:
Properties
Property
Description
attributes
Returns a NamedNodeMap that contains all attributes of a node
childNodes
Returns a node list that contains all children of a node
data
Returns the data of the node
firstChild
Returns the first child node of a node
lastChild
Returns the last child node of a node
length
Returns the length of the data (in characters)
nextSibling
Returns the node immediately following a node. Two nodes are siblings if they have the same parent node
nodeName
Returns the name of the node (depending on the node type)
nodeType
Returns the node type as a number
nodeValue
Returns the value of the node
ownerDocument
Returns the Document object of a node (returns the root node of the document)
parentNode
Returns the parent node of a node
previousSibling
Returns the node immediately preceding a node. Two nodes are siblings if they have the same parent node
Methods
Method
Description
appendChild(tagname)
Appends a new child node to a node
appendData(strdata)
Appends the specified string to the existing data
cloneNode(boolean)
Creates an exact clone node of a node.
If the boolean parameter is set to true, the cloned node clones all the
child nodes of the original node as well
deleteData(offset,count)
Removes the specified range of characters from the data
hasChildNodes()
Returns true if a node has child nodes. Otherwise it returns false
insertBefore(newnode,refnode)
Inserts a new node (newnode) before the existing node (refnode)
insertData(offset,string)
Inserts the stringdata at the specified offset
removeChild(nodename)
Removes the specified node and returns it
replaceChild(newnode,oldnode)
Replaces the oldnode with the newnode, and returns the oldnode
replaceData(offset,count,stringdata)
Replaces the characters from the specified offset with the stringdata |
|
|