XML 参考手册
XML 参考手册
节点类型
下面的表格列出了不同的 W3C 节点类型,以及它们可拥有的子元素:
节点类型 | 描述 | 子元素 |
---|---|---|
Document | 表示整个文档(DOM 树的根节点) |
|
DocumentFragment | 表示轻量级的 Document 对象,其中容纳了一部分文档。 |
|
DocumentType | 向为文档定义的实体提供接口。 | None |
ProcessingInstruction | 表示处理指令。 | None |
EntityReference | 表示实体引用元素。 |
|
Element | 表示 element(元素)元素 |
|
Attr | 表示属性。 |
|
Text | 表示元素或属性中的文本内容。 | None |
CDATASection | 表示文档中的 CDATA 区段(文本不会被解析器解析) | None |
Comment | 表示注释。 | None |
Entity | 表示实体。 |
|
Notation | 表示在 DTD 中声明的符号。 | None |
节点类型 - 所返回的值
下面的表格列出了对每个节点类型来说,nodeName 和 nodeValue 属性可返回的值:
节点类型 | nodeName 的返回值 | nodeValue 的返回值 |
---|---|---|
Document | #document | null |
DocumentFragment | #document fragment | null |
DocumentType | doctype 名称 | null |
EntityReference | 实体引用名称 | null |
Element | element name | null |
Attr | 属性名称 | 属性值 |
ProcessingInstruction | target | 节点的内容 |
Comment | #comment | 注释文本 |
Text | #text | 节点内容 |
CDATASection | #cdata-section | 节点内容 |
Entity | 实体名称 | null |
Notation | 符号名称 | null |
NodeTypes - 有名常数
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 Node 对象
Node 对象的属性
属性 | 描述 |
---|---|
attributes | 包含此节点的属性的 NamedNodeMap(如果此节点是元素)。 |
baseURI | 返回节点的绝对基准 URI。 |
childNodes | 返回节点的子节点的 NodeList。 |
firstChild | 返回节点的第一个子节点。 |
lastChild | 返回节点的最后一个子节点。 |
nextSibling | 返回节点之后紧跟的同级节点。 |
nodeName | 返回节点的名称,根据其类型。 |
nodeType | 返回节点的类型。 |
nodeValue | 设置或返回节点的值,根据其类型。 |
ownerDocument | 返回节点的根元素(document 对象)。 |
parentNode | 返回节点的父节点。 |
prefix | 设置或返回节点的命名空间前缀。 |
previousSibling | 返回节点之前紧跟的同级节点。 |
textContent | 设置或返回节点及其后代的文本内容。 |
Node 对象的方法
方法 | 描述 |
---|---|
appendChild() | 将新的子节点追加到节点子节点列表的末尾。 |
cloneNode() | 克隆节点。 |
compareDocumentPosition() | 比较 DOM 层次结构(文档)中两个节点的位置。 |
getFeature(feature,version) | 返回 DOM 对象,该对象实现指定特性和版本的专用 API。 |
getUserData(key) |
返回与节点上的键关联的对象。 必须首先将对象设置到此节点,通过使用相同的键调用 setUserData。 |
hasAttributes() | 如果指定节点有任何属性则返回 true,否则返回 false。 |
hasChildNodes() | 如果指定节点有子节点则返回 true,否则返回 false。 |
insertBefore() | 在指定的子节点前插入新的子节点。 |
isDefaultNamespace(URI) | 返回指定的命名空间 URI 是否为默认。 |
isEqualNode() | 检查两个节点是否相等。 |
isSameNode() | 检查两个节点是否是相同的节点。 |
lookupNamespaceURI() | 返回与给定前缀关联的命名空间 URI。 |
lookupPrefix() | 返回与给定名称空间 URI 关联的前缀。 |
normalize() | 合并相邻的文本节点并删除空的文本节点。 |
removeChild() | 删除(并返回)当前节点的指定子节点。 |
replaceChild() | 用新节点替换子节点。 |
setUserData(key,data,handler) | 将对象与节点上的键关联。 |
XML DOM NodeList 对象
NodeList 对象的属性
属性 | 描述 |
---|---|
length | 返回节点列表中的节点数。 |
NodeList 对象的方法
方法 | 描述 |
---|---|
item() | 返回节点列表中指定索引处的节点。 |
XML DOM NamedNodeMap 对象
NamedNodeMap 对象的属性
属性 | 描述 |
---|---|
length | 返回列表中的节点数。 |
NamedNodeMap 对象的方法
方法 | 描述 |
---|---|
getNamedItem() | 返回拥有特定名称的节点。 |
getNamedItemNS() | 返回拥有特定名称和命名空间的节点。 |
item() | 返回指定索引处的节点。 |
removeNamedItem() | 删除拥有特定名称的节点。 |
removeNamedItemNS() | 删除拥有特定名称和命名空间的节点。 |
setNamedItem() | 设置指定的节点(按名称)。 |
setNamedItemNS() | 设置指定的节点(按名称和命名空间)。 |
XML DOM Document 对象
Document 对象的属性
属性 | 描述 |
---|---|
childNodes | 返回文档的子节点的 NodeList。 |
doctype | 返回与文档关联的文档类型声明。 |
documentElement | 返回文档的根节点。 |
documentURI | 设置或返回文档的位置。 |
domConfig | 返回调用 normalizeDocument() 时使用的配置。 |
firstChild | 返回文档的第一个子节点。 |
implementation | 返回处理此文档的 DOMImplementation 对象。 |
inputEncoding | 返回文档使用的编码方式(在解析时)。 |
lastChild | 返回文档的最后一个子节点。 |
nodeName | 返回节点的名称(取决于其类型)。 |
nodeType | 返回节点的节点类型。 |
nodeValue | 设置或返回节点的值(取决于其类型)。 |
xmlEncoding | 返回文档的 XML 编码方式。 |
xmlStandalone | 设置或返回文档是否是独立的。 |
xmlVersion | 设置或返回文档的 XML 版本。 |
Document 对象的方法
方法 | 描述 |
---|---|
adoptNode() | 将另一个文档中的节点采纳到本文档中,并返回被采纳的节点。 |
createAttribute() | 创建拥有指定名称的属性节点,并返回新的 Attr 对象。 |
createAttributeNS() | 创建拥有指定名称和命名空间的属性节点,并返回新的 Attr 对象。 |
createCDATASection() | 创建 CDATA section 节点。 |
createComment() | 创建注释节点。 |
createDocumentFragment() | 创建空的 DocumentFragment 对象并返回它。 |
createElement() | 创建元素节点。 |
createElementNS() | 创建拥有指定命名空间的元素节点。 |
createEntityReference() | 创建 EntityReference 对象,并返回此对象。 |
createProcessingInstruction() | 创建 ProcessingInstruction 对象,并返回此对象。 |
createTextNode() | 创建文本节点。 |
getElementById() | 返回拥有给定值的 id 属性的元素。 |
getElementsByTagName() | 返回拥有指定名称的所有元素的 NodeList。 |
getElementsByTagNameNS() | 返回拥有指定名称和命名空间的所有元素的 NodeList。 |
importNode() | 将节点从另一个文档导入到此文档。 |
normalizeDocument() | |
renameNode() | 重命名元素节点或属性节点。 |
DocumentType 对象的属性
每个文档都有一个 DOCTYPE 属性,其值为 null 或 DocumentType 对象。
DocumentType 对象提供了为 XML 文档定义的实体的接口。
属性 | 描述 |
---|---|
name | 返回 DTD 的名称。 |
publicId | 返回 DTD 的公共标识符。 |
systemId | 返回外部 DTD 的系统标识符。 |
DocumentImplementation 对象的方法
DOMImplementation 对象执行独立于文档对象模型的任何特定实例的操作。
方法 | 描述 |
---|---|
createDocument() | 创建指定的文档类型的新 DOM Document 对象。 |
createDocumentType() | 创建空的 DocumentType 节点。 |
getFeature() | 返回实现指定特性和版本的 API 的对象(如果有)。 |
hasFeature() | 检查 DOM 实现是否实现了特定的特性和版本。 |
ProcessingInstruction 对象的属性
ProcessingInstruction 对象表示处理指令。
处理指令是被用作将处理器特定信息保留在 XML 文档文本中的方法。
属性 | 描述 |
---|---|
data | 设置或返回该处理指令的内容。 |
target | 返回该处理指令的目标。 |
XML DOM Element 对象
Element 对象的属性
属性 | 描述 |
---|---|
attributes | 返回元素的属性的 NamedNodeMap。 |
baseURI | 返回元素的绝对基准 URI。 |
childNodes | 返回元素的子节点的 NodeList。 |
firstChild | 返回元素的第一个子元素。 |
lastChild | 返回元素的最后一个子元素。 |
localName | 返回元素名称的本地部分。 |
namespaceURI | 返回元素的命名空间 URI。 |
nextSibling | 返回紧随该元素之后的节点。 |
nodeName | 返回节点的名称,取决于其类型。 |
nodeType | 返回节点的类型。 |
ownerDocument | 返回元素的根元素(文档对象)。 |
parentNode | 返回元素的父节点。 |
prefix | 设置或返回元素的命名空间前缀。 |
previousSibling | 返回紧邻该元素之前的节点。 |
schemaTypeInfo | 返回与元素相关联的类型信息。 |
tagName | 返回元素的名称。 |
textContent | 设置或返回元素及其后代的文本内容。 |
Element 对象的方法
方法 | 描述 |
---|---|
appendChild() | 将新的子节点添加到该节点的子节点列表的末尾。 |
cloneNode() | 克隆节点。 |
compareDocumentPosition() | 比较两个节点的文档位置。 |
getAttribute() | 返回属性的值。 |
getAttributeNS() | 返回属性的值(带有命名空间)。 |
getAttributeNode() | 返回属性节点,以 Attribute 对象。 |
getAttributeNodeNS() | 返回属性节点(带有命名空间),以 Attribute 对象。 |
getElementsByTagName() | 返回匹配元素节点及其子节点的 NodeList。 |
getElementsByTagNameNS() | 返回匹配元素节点(带有命名空间)及其子节点的 NodeList。 |
getFeature(feature,version) | 返回 DOM 对象,该对象实现指定特性和版本的专用 API。 |
getUserData(key) | 返回与节点上的键关联的对象。必须首先将对象设置到此节点,通过使用相同的键来调用 setUserData。 |
hasAttribute() | 返回元素是否拥有与指定名称匹配的属性。 |
hasAttributeNS() | 返回元素是否拥有与指定名称和命名空间匹配的属性。 |
hasAttributes() | 返回元素是否拥有属性。 |
hasChildNodes() | 返回该元素是否有子节点。 |
insertBefore() | 在现有子节点之前插入新的子节点。 |
isDefaultNamespace(URI) | 返回指定的 namespaceURI 是否是默认的。 |
isEqualNode() | 检查两个节点是否相等。 |
lookupNamespaceURI() | 返回与指定前缀匹配的命名空间 URI。 |
lookupPrefix() | 返回与指定命名空间 URI 匹配的前缀。 |
normalize() |
normalize() 方法移除空的文本节点,并连接相邻的文本节点。 将元素下的所有文本节点(包括属性)正规化,其中仅结构(例如元素、注释、处理指令、CDATA 部分和实体引用)分隔文本节点。 即,既不存在相邻的文本节点,也不存在空的文本节点。 |
removeAttribute() | 删除指定的属性。 |
removeAttributeNS() | 删除指定的属性(带有命名空间)。 |
removeAttributeNode() | 删除指定的属性节点。 |
removeChild() | 删除子节点。 |
replaceChild() | 替换子节点。 |
setUserData(key,data,handler) | 将对象与元素上的键相关联。 |
setAttribute() | 添加新属性。 |
setAttributeNS() | 添加新属性(带有命名空间)。 |
setAttributeNode() | 添加新的属性节点。 |
setAttributeNodeNS(attrnode) | 添加新的属性节点(带有命名空间)。 |
setIdAttribute(name,isId) | 如果 Attribute 对象的 isId 属性为 true,则此方法将指定的属性声明为用户确定的 ID 属性。 |
setIdAttributeNS(uri,name,isId) | 如果 Attribute 对象的 isId 属性为 true,则此方法将指定的属性(带有命名空间)声明为用户确定的 ID 属性。 |
setIdAttributeNode(idAttr,isId) | 如果 Attribute 对象的 isId 属性为 true,则此方法将指定的属性声明为用户确定的 ID 属性。 |
Attr 对象的属性
属性 | 描述 |
---|---|
baseURI | 返回属性的绝对基准 URI。 |
isId | 如果属性是 id 类型,则返回 true,否则返回 false。 |
localName | 返回属性名称的本地部分。 |
name | 返回属性的名称。 |
namespaceURI | 返回属性的命名空间 URI。 |
nodeName | 返回节点的名称,根据其类型。 |
nodeType | 返回节点的类型。 |
nodeValue | 设置或返回节点的值,根据其类型。 |
ownerDocument | 返回属性的根元素(文档对象)。 |
ownerElement | 返回属性所附属的元素节点。 |
prefix | 设置或返回属性的命名空间前缀。 |
schemaTypeInfo | 返回与该属性相关联的类型信息。 |
specified |
如果在文档中设置了该属性值,则返回 true; 如果属性值是 DTD/Schema 中的默认值,则返回 false。 |
textContent | 设置或返回属性的文本内容。 |
value | 设置或返回属性的值。 |
XML DOM Text 对象
Text 对象的属性
属性 | 描述 |
---|---|
data | 设置或返回元素或属性的文本。 |
isElementContentWhitespace | 判断文本节点是否包含空白字符内容。 |
length | 返回元素或属性的文本长度。 |
wholeText | 返回与该节点相邻的文本节点的所有文本,按文档顺序连接。 |
Text 对象的方法
方法 | 描述 |
---|---|
appendData() | 将数据追加到节点。 |
deleteData() | 从节点中删除数据。 |
insertData() | 将数据插入节点中。 |
replaceData() | 替换节点中的数据。 |
replaceWholeText(text) | 用指定的文本替换该节点和所有相邻文本节点的文本。 |
splitText() | 把一个 Text 节点拆分成两个。 |
substringData() | 从节点中提取数据。 |
XML DOM CDATASection 对象
CDATASection 对象的属性
属性 | 描述 |
---|---|
data | 设置或返回该节点的文本。 |
length | 返回 CDATA 部分的长度。 |
CDATASection 对象的方法
方法 | 描述 |
---|---|
appendData() | 将数据追加到节点。 |
deleteData() | 从节点中删除数据。 |
insertData() | 将数据插入节点中。 |
replaceData() | 替换节点中的数据。 |
splitText() | 将 CDATA 节点拆分为两个节点。 |
substringData() | 从节点中提取数据。 |
XML DOM Comment 对象
Comment 对象的属性
属性 | 描述 |
---|---|
data | 设置或返回该节点的文本。 |
length | 返回该节点的文本长度。 |
Comment 对象的方法
方法 | 描述 |
---|---|
appendData() | 将数据追加到节点。 |
deleteData() | 从节点中删除数据。 |
insertData() | 将数据插入节点中。 |
replaceData() | 替换节点中的数据。 |
substringData() | 从节点中提取数据。 |
XML DOM XMLHttpRequest 对象
XMLHttpRequest 对象的方法
方法 | 描述 |
---|---|
abort() | 取消当前请求。 |
getAllResponseHeaders() | 返回标头信息。 |
getResponseHeader() | 返回指定的 HTTP 响应头部的值。 |
open(method,url,async,uname,pswd) |
指定请求的类型、URL、是否应异步处理请求以及请求的其他可选属性。
|
send(string) |
将请求发送到服务器。 string:仅用于 POST 请求 |
setRequestHeader() | 将标签/值对添加到要发送的标头。 |
XMLHttpRequest 对象的属性
属性 | 描述 |
---|---|
onreadystatechange | 存储每次 readyState 属性更改时自动调用的函数(或函数名称)。 |
readyState |
保存 XMLHttpRequest 的状态。从 0 到 4 的变化:
|
responseText | 返回响应数据,以字符串。 |
responseXML | 返回响应数据,以 XML 数据。 |
status | 返回状态号(例如 "404" 表示 "Not Found",或 "200" 表示 "OK")。 |
statusText | 返回状态文本(例如 "Not Found" 或 "OK")。 |
XSD 元素
元素 | 解释 |
---|---|
all | 规定子元素能够以任意顺序出现,每个子元素可出现零次或一次。 |
annotation | annotation 元素是一个顶层元素,规定 schema 的注释。 |
any | 使创作者可以通过未被 schema 规定的元素来扩展 XML 文档。 |
anyAttribute | 使创作者可以通过未被 schema 规定的属性来扩展 XML 文档。 |
appInfo | 规定 annotation 元素中应用程序要使用的信息。 |
attribute | 定义一个属性。 |
attributeGroup | 定义在复杂类型定义中使用的属性组。 |
choice | 仅允许在 <choice> 声明中包含一个元素出现在包含元素中。 |
complexContent | 定义对复杂类型(包含混合内容或仅包含元素)的扩展或限制。 |
complexType | 定义复杂类型。 |
documentation | 定义 schema 中的文本注释。 |
element | 定义元素。 |
extension | 扩展已有的 simpleType 或 complexType 元素。 |
field | 规定 XPath 表达式,该表达式规定用于定义标识约束的值。 |
group | 定义在复杂类型定义中使用的元素组。 |
import | 向一个文档添加带有不同目标命名空间的多个 schema。 |
include | 向一个文档添加带有相同目标命名空间的多个 schema。 |
key | 指定属性或元素值(或一组值)必须是指定范围内的键。 |
keyref | 规定属性或元素值(或一组值)对应指定的 key 或 unique 元素的值。 |
list | 把简单类型定义为指定数据类型的值的一个列表。 |
notation | 描述 XML 文档中非 XML 数据的格式。 |
redefine | 重新定义从外部架构文件中获取的简单和复杂类型、组和属性组。 |
restriction | 定义对 simpleType、simpleContent 或 complexContent 的约束。 |
schema | 定义 schema 的根元素。 |
selector | 指定 XPath 表达式,该表达式为标识约束选择一组元素。 |
sequence | 要求子元素必须按顺序出现。每个子元素可出现 0 到任意次数。 |
simpleContent | 包含对 complexType 元素的扩展或限制且不包含任何元素。 |
simpleType | 定义一个简单类型,规定约束以及关于属性或仅含文本的元素的值的信息。 |
union | 定义多个 simpleType 定义的集合。 |
unique | 指定属性或元素值(或者属性或元素值的组合)在指定范围内必须是唯一的。 |
对数据类型的 XSD 限定
限定 | 描述 |
---|---|
enumeration | 定义可接受值的一个列表 |
fractionDigits | 定义所允许的最大的小数位数。必须大于等于0。 |
length | 定义所允许的字符或者列表项目的精确数目。必须大于或等于0。 |
maxExclusive | 定义数值的上限。所允许的值必须小于此值。 |
maxInclusive | 定义数值的上限。所允许的值必须小于或等于此值。 |
maxLength | 定义所允许的字符或者列表项目的最大数目。必须大于或等于0。 |
minExclusive | 定义数值的下限。所允许的值必需大于此值。 |
minInclusive | 定义数值的下限。所允许的值必需大于或等于此值。 |
minLength | 定义所允许的字符或者列表项目的最小数目。必须大于或等于0。 |
pattern | 定义可接受的字符的精确序列。 |
totalDigits | 定义所允许的阿拉伯数字的精确位数。必须大于0。 |
whiteSpace | 定义空白字符(换行、回车、空格以及制表符)的处理方式。 |
XSLT 元素
元素 | 描述 |
---|---|
apply-imports | 应用来自导入样式表中的模版规则。 |
apply-templates | 向当前元素或当前元素的子元素应用模板。 |
attribute | 向元素添加属性。 |
attribute-set | 创建命名的属性集。 |
call-template | 调用一个指定的模板。 |
choose | 与<when>以及<otherwise>协同使用,来表达多重条件测试。 |
comment | 在结果树中创建注释节点。 |
copy | 创建当前节点的一个备份(无子节点及属性)。 |
copy-of | 创建当前节点的一个备份(带有子节点及属性)。 |
decimal-format | 定义当通过 format-number() 函数把数字转换为字符串时,所要使用的字符和符号。 |
element | 在输出文档中创建一个元素节点。 |
fallback | 假如处理器不支持某个XSLT元素,规定一段备用代码来运行。 |
for-each | 遍历指定的节点集中的每个节点。 |
if | 包含一个模板,仅当某个指定的条件成立时应用此模板。 |
import | 用于把一个样式表中的内容倒入另一个样式表中。 |
include | 把一个样式表中的内容包含到另一个样式表中。 |
key | 声明一个命名的键。 |
message | 向输出写一条消息(用于错误报告)。 |
namespace-alias | 把样式表中的命名空间替换为输出中不同的命名空间。 |
number | 测定当前节点的整数位置,并对数字进行格式化。 |
otherwise | 规定 <choose> 元素的默认动作。 |
output | 定义输出文档的格式。 |
param | 声明一个局部或全局参数。 |
preserve-space | 用于定义保留空白的元素。 |
processing-instruction | 生成处理指令节点。 |
sort | 对结果进行排序。 |
strip-space | 定义应当删除空白字符的元素。 |
stylesheet | 定义样式表的根元素。 |
template | 当指定的节点被匹配时所应用的规则。 |
text | 通过样式表生成文本节点。 |
transform | 定义样式表的根元素。 |
value-of | 提取选定节点的值。 |
variable | 声明局部或者全局的变量。 |
when | 规定 <choose> 元素的动作。 |
with-param | 规定需被传入某个模板的参数的值。 |
XSLT、XPath 以及 XQuery 函数
存取函数
名称 | 说明 |
---|---|
fn:node-name(node) | 返回参数节点的节点名称。 |
fn:nilled(node) | 返回是否拒绝参数节点的布尔值。 |
fn:data(item.item,...) | 接受项目序列,并返回原子值序列。 |
|
返回当前节点或指定节点的 base-uri 属性的值。 |
fn:document-uri(node) | 返回指定节点的 document-uri 属性的值。 |
错误和跟踪函数
名称 | 说明 |
---|---|
|
例子:error(fn:QName('http://example.com/test', 'err:toohigh'), 'Error: Price is too high') 结果:向外部处理环境返回 http://example.com/test#toohigh 以及字符串 "Error: Price is too high"。 |
fn:trace(value,label) | 用于对查询进行 debug。 |
有关数值的函数
名称 | 说明 |
---|---|
fn:number(arg) |
返回参数的数值。参数可以是布尔值、字符串或节点集。 例子:number('100') 结果:100 |
fn:abs(num) |
返回参数的绝对值。 例子:abs(3.14) 结果:3.14 例子:abs(-3.14) 结果:3.14 |
fn:ceiling(num) |
返回大于 num 参数的最小整数。 例子:ceiling(3.14) 结果:4 |
fn:floor(num) |
返回不大于 num 参数的最大整数。 例子:floor(3.14) 结果:3 |
fn:round(num) |
把 num 参数舍入为最接近的整数。 例子:round(3.14) 结果:3 |
fn:round-half-to-even() |
例子:round-half-to-even(0.5) 结果:0 例子:round-half-to-even(1.5) 结果:2 例子:round-half-to-even(2.5) 结果:2 |
有关字符串的函数
名称 | 说明 |
---|---|
fn:string(arg) |
返回参数的字符串值。参数可以是数字、逻辑值或节点集。 例子:string(314) 结果:"314" |
fn:codepoints-to-string(int,int,...) |
根据代码点序列返回字符串。 例子:codepoints-to-string(84, 104, 233, 114, 232, 115, 101) 结果:'Thérèse' |
fn:string-to-codepoints(string) |
根据字符串返回代码点序列。 例子:string-to-codepoints("Thérèse") 结果:84, 104, 233, 114, 232, 115, 101 |
fn:codepoint-equal(comp1,comp2) | 根据 Unicode 代码点对照,如果 comp1 的值等于 comp2 的值,则返回 true。(http://www.w3.org/2005/02/xpath-functions/collation/codepoint),否则返回 false。 |
|
如果 comp1 小于 comp2,则返回 -1。如果 comp1 等于 comp2,则返回 0。如果 comp1 大于 comp2,则返回 1。(根据所用的对照规则)。 例子:compare('ghi', 'ghi') 结果:0 |
fn:concat(string,string,...) |
返回字符串的拼接。 例子:concat('XPath ','is ','FUN!') 结果:'XPath is FUN!' |
fn:string-join((string,string,...),sep) |
使用 sep 参数作为分隔符,来返回 string 参数拼接后的字符串。 例子:string-join(('We', 'are', 'having', 'fun!'), ' ') 结果:' We are having fun! ' 例子:string-join(('We', 'are', 'having', 'fun!')) 结果:'Wearehavingfun!' 例子:string-join((), 'sep') 结果:'' |
|
返回从 start 位置开始的指定长度的子字符串。第一个字符的下标是 1。如果省略 len 参数,则返回从位置 start 到字符串末尾的子字符串。 例子:substring('Beatles',1,4) 结果:'Beat' 例子:substring('Beatles',2) 结果:'eatles' |
|
返回指定字符串的长度。如果没有 string 参数,则返回当前节点的字符串值的长度。 例子:string-length('Beatles') 结果:7 |
|
删除指定字符串的开头和结尾的空白,并把内部的所有空白序列替换为一个,然后返回结果。如果没有 string 参数,则处理当前节点。 例子:normalize-space(' The XML ') 结果:'The XML' |
fn:normalize-unicode() | 执行 Unicode 规格化。 |
fn:upper-case(string) |
把 string 参数转换为大写。 例子:upper-case('The XML') 结果:'THE XML' |
fn:lower-case(string) |
把 string 参数转换为小写。 例子:lower-case('The XML') 结果:'the xml' |
fn:translate(string1,string2,string3) |
把 string1 中的 string2 替换为 string3。 例子:translate('12:30','30','45') 结果:'12:45' 例子:translate('12:30','03','54') 结果:'12:45' 例子:translate('12:30','0123','abcd') 结果:'bc:da' |
fn:escape-uri(stringURI,esc-res) |
例子:escape-uri("http://example.com/test#car", true()) 结果:"http%3A%2F%2Fexample.com%2Ftest#car" 例子:escape-uri("http://example.com/test#car", false()) 结果:"http://example.com/test#car" 例子:escape-uri ("http://example.com/~bébé", false()) 结果:"http://example.com/~b%C3%A9b%C3%A9" |
fn:contains(string1,string2) |
如果 string1 包含 string2,则返回 true,否则返回 false。 例子:contains('XML','XM') 结果:true |
fn:starts-with(string1,string2) |
如果 string1 以 string2 开始,则返回 true,否则返回 false。 例子:starts-with('XML','X') 结果:true |
fn:ends-with(string1,string2) |
如果 string1 以 string2 结尾,则返回 true,否则返回 false。 例子:ends-with('XML','X') 结果:false |
fn:substring-before(string1,string2) |
返回 string2 在 string1 中出现之前的子字符串。 例子:substring-before('12/10','/') 结果:'12' |
fn:substring-after(string1,string2) |
返回 string2 在 string1 中出现之后的子字符串。 例子:substring-after('12/10','/') 结果:'10' |
fn:matches(string,pattern) |
如果 string 参数匹配指定的模式,则返回 true,否则返回 false。 例子:matches("Merano", "ran") 结果:true |
fn:replace(string,pattern,replace) |
把指定的模式替换为 replace 参数,并返回结果。 例子:replace("Bella Italia", "l", "*") 结果:'Be**a Ita*ia' 例子:replace("Bella Italia", "l", "") 结果:'Bea Itaia' |
fn:tokenize(string,pattern) |
例子:tokenize("XPath is fun", "\s+") 结果:("XPath", "is", "fun") |
针对 anyURI 的函数
名称 | 说明 |
---|---|
fn:resolve-uri(relative,base) |
关于布尔值的函数
名称 | 说明 |
---|---|
fn:boolean(arg) | 返回数字、字符串或节点集的布尔值。 |
fn:not(arg) |
首先通过 boolean() 函数把参数还原为一个布尔值。 如果该布尔值为 false,则返回 true,否则返回 true。 例子:not(true()) 结果:false |
fn:true() |
返回布尔值 true。 例子:true() 结果:true |
fn:false() |
返回布尔值 false。 例子:false() 结果:false |
有关持续时间、日期和时间的函数
日期、时间、持续时间的组件提取函数
名称 | 说明 |
---|---|
fn:dateTime(date,time) | 把参数转换为日期和时间。 |
fn:years-from-duration(datetimedur) | 返回参数值的年份部分的整数,以标准词汇表示法来表示。 |
fn:months-from-duration(datetimedur) | 返回参数值的月份部分的整数,以标准词汇表示法来表示。 |
fn:days-from-duration(datetimedur) | 返回参数值的天部分的整数,以标准词汇表示法来表示。 |
fn:hours-from-duration(datetimedur) | 返回参数值的小时部分的整数,以标准词汇表示法来表示。 |
fn:minutes-from-duration(datetimedur) | 返回参数值的分钟部分的整数,以标准词汇表示法来表示。 |
fn:seconds-from-duration(datetimedur) | 返回参数值的分钟部分的十进制数,以标准词汇表示法来表示。 |
fn:year-from-dateTime(datetime) |
返回参数本地值的年部分的整数。 例子:year-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) 结果:2005 |
fn:month-from-dateTime(datetime) |
返回参数本地值的月部分的整数。 例子:month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) 结果:01 |
fn:day-from-dateTime(datetime) |
返回参数本地值的天部分的整数。 例子:day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) 结果:10 |
fn:hours-from-dateTime(datetime) |
返回参数本地值的小时部分的整数。 例子:hours-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) 结果:12 |
fn:minutes-from-dateTime(datetime) |
返回参数本地值的分钟部分的整数。 例子:minutes-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) 结果:30 |
fn:seconds-from-dateTime(datetime) |
返回参数本地值的秒部分的十进制数。 例子:seconds-from-dateTime(xs:dateTime("2005-01-10T12:30:00-04:10")) 结果:0 |
fn:timezone-from-dateTime(datetime) | 返回参数的时区部分,如果存在。 |
fn:year-from-date(date) |
返回参数本地值中表示年的整数。 例子:year-from-date(xs:date("2005-04-23")) 结果:2005 |
fn:month-from-date(date) |
返回参数本地值中表示月的整数。 例子:month-from-date(xs:date("2005-04-23")) 结果:4 |
fn:day-from-date(date) |
返回参数本地值中表示天的整数。 例子:day-from-date(xs:date("2005-04-23")) 结果:23 |
fn:timezone-from-date(date) | 返回参数的时区部分,如果存在。 |
fn:hours-from-time(time) |
返回参数本地值中表示小时部分的整数。 例子:hours-from-time(xs:time("10:22:00")) 结果:10 |
fn:minutes-from-time(time) |
返回参数本地值中表示分钟部分的整数。 例子:minutes-from-time(xs:time("10:22:00")) 结果:22 |
fn:seconds-from-time(time) |
返回参数本地值中表示秒部分的整数。 例子:seconds-from-time(xs:time("10:22:00")) 结果:0 |
fn:timezone-from-time(time) | 返回参数的时区部分,如果存在。 |
fn:adjust-dateTime-to-timezone(datetime,timezone) |
如果 timezone 参数为空,则返回没有时区的 dateTime。 否则返回带有时区的 dateTime。 |
fn:adjust-date-to-timezone(date,timezone) |
如果 timezone 参数为空,则返回没有时区的 date。 否则返回带有时区的 date。 |
fn:adjust-time-to-timezone(time,timezone) |
如果 timezone 参数为空,则返回没有时区的 time。 否则返回带有时区的 time。 |
与 QNames 相关的函数
名称 | 说明 |
---|---|
fn:QName() | |
fn:local-name-from-QName() | |
fn:namespace-uri-from-QName() | |
fn:namespace-uri-for-prefix() | |
fn:in-scope-prefixes() | |
fn:resolve-QName() |
关于节点的函数
名称 | 说明 |
---|---|
|
返回当前节点的名称或指定节点集中的第一个节点。 |
|
返回当前节点的名称或指定节点集中的第一个节点 - 不带有命名空间前缀。 |
|
返回当前节点或指定节点集中第一个节点的命名空间 URI。 |
fn:lang(lang) |
如果当前节点的语言匹配指定的语言,则返回 true。 例子:Lang("en") is true for <p xml:lang="en">...</p> 例子:Lang("de") is false for <p xml:lang="en">...</p> |
|
返回当前节点或指定的节点所属的节点树的根节点。通常是文档节点。 |
有关序列的函数
一般性的函数
名称 | 说明 |
---|---|
fn:index-of((item,item,...),searchitem) |
返回在项目序列中等于 searchitem 参数的位置。 例子:index-of ((15, 40, 25, 40, 10), 40) 结果:(2, 4) 例子:index-of (("a", "dog", "and", "a", "duck"), "a") Result (1, 4) 例子:index-of ((15, 40, 25, 40, 10), 18) 结果:() |
fn:remove((item,item,...),position) |
返回由 item 参数构造的新序列 - 同时删除 position 参数指定的项目。 例子:remove(("ab", "cd", "ef"), 0) 结果:("ab", "cd", "ef") 例子:remove(("ab", "cd", "ef"), 1) 结果:("cd", "ef") 例子:remove(("ab", "cd", "ef"), 4) 结果:("ab", "cd", "ef") |
fn:empty(item,item,...) |
如果参数值是空序列,则返回 true,否则返回 false。 例子:empty(remove(("ab", "cd"), 1)) 结果:false |
fn:exists(item,item,...) |
如果参数值不是空序列,则返回 true,否则返回 false。 例子:exists(remove(("ab"), 1)) 结果:false |
fn:distinct-values((item,item,...),collation) |
返回唯一不同的值。 例子:distinct-values((1, 2, 3, 1, 2)) 结果:(1, 2, 3) |
fn:insert-before((item,item,...),pos,inserts) |
返回由 item 参数构造的新序列 - 同时在 pos 参数指定位置插入 inserts 参数的值。 例子:insert-before(("ab", "cd"), 0, "gh") 结果:("gh", "ab", "cd") 例子:insert-before(("ab", "cd"), 1, "gh") 结果:("gh", "ab", "cd") 例子:insert-before(("ab", "cd"), 2, "gh") 结果:("ab", "gh", "cd") 例子:insert-before(("ab", "cd"), 5, "gh") 结果:("ab", "cd", "gh") |
fn:reverse((item,item,...)) |
返回指定的项目的颠倒顺序。 例子:reverse(("ab", "cd", "ef")) 结果:("ef", "cd", "ab") 例子:reverse(("ab")) 结果:("ab") |
fn:subsequence((item,item,...),start,len) |
返回 start 参数指定的位置返回项目序列,序列的长度由 len 参数指定。 第一个项目的位置是 1。 例子:subsequence(($item1, $item2, $item3,...), 3) 结果:($item3, ...) 例子:subsequence(($item1, $item2, $item3, ...), 2, 2) 结果:($item2, $item3) |
fn:unordered((item,item,...)) | 依据实现决定的顺序来返回项目。 |
测试序列容量的函数
名称 | 说明 |
---|---|
fn:zero-or-one(item,item,...) | 如果参数包含零个或一个项目,则返回参数,否则生成错误。 |
fn:one-or-more(item,item,...) | 如果参数包含一个或多个项目,则返回参数,否则生成错误。 |
fn:exactly-one(item,item,...) | 如果参数包含一个项目,则返回参数,否则生成错误。 |
Equals, Union, Intersection and Except
名称 | 说明 |
---|---|
fn:deep-equal(param1,param2,collation) | 如果 param1 和 param2 与彼此相等(deep-equal),则返回 true,否则返回 false。 |
合计函数
名称 | 说明 |
---|---|
fn:count((item,item,...)) | 返回节点的数量。 |
fn:avg((arg,arg,...)) |
返回参数值的平均数。 例子:avg((1,2,3)) 结果:2 |
fn:max((arg,arg,...)) |
返回大于其它参数的参数。 例子:max((1,2,3)) 结果:3 例子:max(('a', 'k')) 结果:'k' |
fn:min((arg,arg,...)) |
返回小于其它参数的参数。 例子:min((1,2,3)) 结果:1 例子:min(('a', 'k')) 结果:'a' |
fn:sum(arg,arg,...) | 返回指定节点集中每个节点的数值的总和。 |
生成序列的函数
名称 | 说明 |
---|---|
fn:id((string,string,...),node) | 返回元素节点序列,这些节点的 ID 值等于 string 参数中指定的一个或多个值。 |
fn:idref((string,string,...),node) | 返回元素或属性节点序列,这些节点的 IDREF 值等于 string 参数中指定的一个或多个值。 |
fn:doc(URI) | |
fn:doc-available(URI) | 如果 doc() 函数返回文档节点,则返回 true,否则返回 false。 |
|
上下文函数
名称 | 说明 |
---|---|
fn:position() |
返回当前正在被处理的节点的 index 位置。 例子://book[position()<=3] 结果:选择前三个 book 元素 |
fn:last() |
返回在被处理的节点列表中的项目数目。 例子://book[last()] 结果:选择最后一个 book 元素 |
fn:current-dateTime() | 返回当前的 dateTime(带有时区)。 |
fn:current-date() | 返回当前的日期(带有时区)。 |
fn:current-time() | 返回当前的时间(带有时区)。 |
fn:implicit-timezone() | 返回隐式时区的值。 |
fn:default-collation() | 返回默认对照的值。 |
fn:static-base-uri() | 返回 base-uri 的值。 |
XSLT 函数
此外,还有以下内置的 XSLT 函数:
名称 | 描述 |
---|---|
current() | 返回当前节点作为唯一成员的节点集。 |
document() | 用于访问外部 XML 文档中的节点。 |
element-available() | 检测 XSLT 处理器是否支持指定的元素。 |
format-number() | 把数字转换为字符串。 |
function-available() | 检测 XSLT 处理器是否支持指定的函数。 |
generate-id() | 返回唯一标识指定节点的字符串值。 |
key() | 检索以前使用 <xsl:key> 语句标记的元素。 |
node-set | 将树转换为节点集。产生的节点集总是包含单个节点并且是树的根节点。 |
system-property() | 返回系统属性的值。 |
unparsed-entity-uri() | 返回未解析实体的 URI。 |
其他 XML DOM 对象
- DOM CharacterData
- DOM CSS2Properties
- DOM CSSRule
- DOM CSSStyleRule
- DOM CSSStyleSheet
- DOM DocumentType
- DOM DOMException
- DOM Implementation
- DOM DOMParser
- DOM Event
- DOM HTMLCollection
- DOM HTMLDocument
- DOM HTMLElement
- DOM ProcessingInstr
- DOM Range
- DOM RangeException
- DOM XMLSerializer
- DOM XPathExpression
- DOM XPathResult
- DOM XSLTProcessor