发布于2026-07-22 阅读(0)
扫一扫,手机访问
XML DOM 的属性体系,是处理 XML 文档时绕不开的核心工具。这些属性各自承担着不同的职责,从控制异步下载到获取节点信息,再到管理文档状态,几乎涵盖了开发中的常见需求。下面,我们逐一梳理这些关键属性,看看它们到底能做什么,以及怎么用。
async 属性控制的是异步下载行为。它的基本语法很简单:boolValue = XMLDocument.async 或 XMLDocument.async = boolValue。这个布尔值是可读写的——设为 true 表示允许异步下载,false 则反之。来看一个例子:xmlDoc.async = "false"; alert(xmlDoc.async);。
attribute 属性用于获取当前节点的属性列表。语法是 objAttributeList = xmlNode.attributes,它返回一个对象。如果节点不能包含属性,则返回空值。示例:objAttList = xmlDoc.documentElement.attributes; alert(objAttList);。
childNodes 属性返回一个节点列表,包含该节点所有可用的子节点。语法是 objNodeList=node.childNodes,返回一个对象。假如节点没有子节点,则返回 null。示例:objNodeList = xmlDoc.childNodes; alert(objNodeList);。
doctype 属性返回文档类型节点,包含当前文档的 DTD。语法是 objDocType=xmlDocument.doctype,返回一个对象。该属性是只读的。如果文档不包含 DTD,则返回 null。示例:objDocType = xmlDoc.doctype; alert(objDocType.nodeName);。
documentElement 属性用于确认 XML 文档的根节点。语法是 objDoc=xmlDocument.documentElement,返回一个包含根节点数据的对象。该属性是可读写的。如果文档中没有根节点,则返回 null。示例:objDocRoot = xmlDoc.documentElement; alert(objDocRoot);。
firstChild 属性确认当前节点中的第一个子元素。语法是 objFirstChild = xmlDocNode.firstChild,返回一个对象。该属性只读。如果没有第一个子元素,则返回 null。示例:objFirstChild = xmlDoc.documentElement.firstChild; alert(objFirstChild);。
implementation 属性用于确认当前 XML 文档的 DOM implementation 对象。语法是 objImplementation = xmlDocument.implementation,返回一个对象。该属性只读。
lastChild 属性确认当前节点中的最后一个子元素。语法是 objLastChild = xmlDocNode.lastChild,返回一个对象。该属性只读。如果没有最后一个子元素,则返回 null。示例:objLastChild = xmlDoc.documentElement.lastChild; alert(objLastChild);。
nextSibling 属性在当前节点子节点列表中返回下一个兄弟节点。语法是 objNextSibling = xmlDocNode.nextSibling,返回一个对象。该属性只读。如果没有其他相关节点,则返回 null。示例:objSibling = xmlDoc.documentElement.childNodes.item(1).nextSibling; alert(objSibling);。
nodeName 属性返回代表当前节点名称的字符串。语法是 strNodeName = xmlDocNode.nodeName,返回一个字符串。该属性只读,返回元素名称、属性或实体引用。示例:strNodeName = xmlDoc.documentElement.nodeName; alert(strNodeName);。
nodeType 属性标识节点的 DOM 类型。语法是 numNodeType = xmlDocNode.nodeType,返回一个数值。该属性只读。有效的数值及其对应类型如下:
示例:numNodeType = xmlDoc.documentElement.nodeType; alert(numNodeType);。
nodeValue 属性返回与指定节点相关的文本,但注意,这并非元素中数据的值,而是与节点相关且未解析的文字,比如属性或处理指令。语法是 varNodeValue = xmlDocNode.nodeValue。返回值的类型取决于节点的 nodeType 属性。对于某些节点类型,如 DOCUMENT、ELEMENT 等,会返回 null。该属性是可读写的。示例:varNodeValue = xmlDoc.documentElement.nodeValue; alert(varNodeValue);。
ondataa vailable 属性用于指定一个事件处理函数,当数据可用时触发。语法是 xmlDocNode.ondataa vailable = value。该属性是只写的,允许开发者一旦数据可用就立即处理。示例:xmlDoc.ondataa vailable = alert("Data is now a vailable.");。
onreadystatechange 属性用于指定一个事件处理函数,当 readyState 属性改变时触发。语法是 xmlDocNode.onreadystatechange = value。该属性是只写的。示例:xmlDoc.onreadystatechange = alert("The readyState property has changed.");。
ownerDocument 属性返回当前节点所属的文档根节点。语法是 objOwnerDoc = xmlDocument.ownerDocument,返回一个对象。该属性只读。示例:objOwnerDoc = xmlDoc.childNodes.item(2).ownerDocument; alert(objOwnerDoc);。
parentNode 属性返回当前节点的父节点。语法是 objParentNode = xmlDocumentNode.parentNode,返回一个对象。该属性只读。如果节点不存在于文档树中,则返回 null。示例:objParentNode = xmlDoc.childNodes.item(1).parentNode; alert(objParentNode);。
parseError 属性返回一个 DOM 解析错误对象,描述最后一次解析错误的信息。语法是 objParseErr = xmlDocument.parseError,返回一个对象。该属性只读。如果没有错误发生,则返回 0。示例:objParseErr = xmlDoc.parseError; alert(objParseErr);。
previousSibling 属性返回当前节点之前的兄弟节点。语法是 objPrevSibling = xmlDocument.previousSibling,返回一个对象。该属性只读。如果没有前面的兄弟节点,则返回 null。示例:objPrevSibling = xmlDoc.documentElement.childNodes.item(3).previousSibling; alert(objPrevSibling);。
readyState 属性返回 XML 文档数据的当前状态。语法是 intState = xmlDocument.readyState。该属性是只读的,返回以下数值之一:
示例:alert("The readyState property is " + xmlDoc.readyState);。
url 属性返回最近一次加载 XML 文档的 URL。语法是 strDocUrl = xmlDocument.url。该属性是只读的。如果文档仅存在于内存中(即未从外部文件加载),则返回 null。示例:alert(xmlDoc.url);。
validateOnParse 属性告诉解析器文档是否有效。语法是 boolValidate = xmlDocument.validateOnParse 或 xmlDocument.validateOnParse = boolValidate。该属性是可读写的。如果为 true,文档在解析时被确认为有效;如果为 false,文档被视为无效,仅作为格式良好的文档。示例:xmlDoc.validateOnParse = true; alert(xmlDoc.validateOnParse);。
xml 属性返回指定节点及其所有子节点的 XML 描述。语法是 xmlValue = xmlDocumentNode.xml。该属性是只读的。示例:xmlValue = xmlDoc.documentElement.xml; alert(xmlValue);。
以上就是 XML DOM 中一些核心属性的详细说明。从异步控制到节点遍历,从状态管理到错误处理,掌握这些属性,能让你在处理 XML 文档时更加得心应手。