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