Руководство по XML

Руководство по XML

节点类型

下面的表格列出了不同的 W3C 节点类型,以及它们可拥有的子元素:

节点类型 Description 子元素
Document 表示整个文档(DOM 树的根节点)
  • Element (max. one)
  • ProcessingInstruction
  • Comment
  • DocumentType
DocumentFragment 表示轻量级的 Document 对象,其中容纳了一部分文档。
  • ProcessingInstruction
  • Comment
  • Text
  • CDATASection
  • EntityReference
DocumentType 向为文档定义的实体提供接口。 None
ProcessingInstruction 表示处理指令。 None
EntityReference 表示实体引用元素。
  • ProcessingInstruction
  • Comment
  • Text
  • CDATASection
  • EntityReference
Element 表示 element(元素)元素
  • Text
  • Comment
  • ProcessingInstruction
  • CDATASection
  • EntityReference
Attr 表示属性。
  • Text
  • EntityReference
Text 表示元素或属性中的文本内容。 None
CDATASection 表示文档中的 CDATA 区段(文本不会被解析器解析) None
Comment 表示注释。 None
Entity 表示实体。
  • ProcessingInstruction
  • Comment
  • Text
  • CDATASection
  • EntityReference
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

Вершина

Объект Node в XML DOM

Атрибуты объекта Node

Свойства Description
attributes NamedNodeMap свойств этого узла (если этот узел является элементом).
baseURI Возврат абсолютного базового URI узла.
childNodes Возврат NodeList подузлов узла.
firstChild Возврат первого подузла узла.
lastChild Возврат последнего подузла узла.
nextSibling Возврат следующего по порядку同级 узла после узла.
nodeName Вернуть имя узла, в зависимости от его типа.
nodeType Вернуть тип узла.
nodeValue Установить или вернуть значение узла, в зависимости от его типа.
ownerDocument Возврат корневого элемента (объекта document).
parentNode Возврат родительского узла.
prefix Установить или вернуть префикс пространства имен узла.
previousSibling Возврат следующего по порядку同级 узла перед узлом.
textContent Установить или вернуть текстовое содержимое узла и его потомков.

Методы объекта Node

Метод Description
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) Связать объект с ключом на узле.

Вершина

Объект NodeList в XML DOM

Атрибуты объекта NodeList

Свойства Description
length Возврат количества узлов в списке NodeList

Методы объекта NodeList

Метод Description
item() Возврат узла в списке узлов по заданному индексу.

Вершина

Объект NamedNodeMap в XML DOM

Свойства объекта NamedNodeMap

Свойства Description
length Вернуть количество узлов в списке.

Методы объекта NamedNodeMap

Метод Description
getNamedItem() Вернуть узел с указанным именем.
getNamedItemNS() Вернуть узел с указанным именем и пространством имен.
item() Вернуть узел по указанному индексу.
removeNamedItem() Удалить узел с указанным именем.
removeNamedItemNS() Удалить узел с указанным именем и пространством имен.
setNamedItem() Установить указанный узел (по имени).
setNamedItemNS() Установить указанный узел (по имени и пространству имен).

Вершина

Объект Document в XML DOM

Свойства объекта Document

Свойства Description
childNodes Вернуть NodeList подузлов документа.
doctype Вернуть декларацию типа документа, связанную с документом.
documentElement Вернуть корневой узел документа.
documentURI Установить или вернуть положение документа.
domConfig Вернуть конфигурацию, используемую при вызове normalizeDocument().
firstChild Вернуть первый подузел документа.
implementation Вернуть объект DOMImplementation, обрабатывающий этот документ.
inputEncoding Вернуть способ кодирования, используемый документом (во время анализа).
lastChild Вернуть последний подузел документа.
nodeName Вернуть имя узла (в зависимости от его типа).
nodeType Вернуть тип узла.
nodeValue Установить или вернуть значение узла (в зависимости от его типа).
xmlEncoding Вернуть способ кодирования XML документа.
xmlStandalone Установить или вернуть, является ли документ независимым.
xmlVersion Установить или вернуть версию XML документа.

Методы объекта Document

Метод Description
adoptNode() Принять узел из другого документа в текущий документ и вернуть принятый узел.
createAttribute() Создать узел атрибута с указанным именем и вернуть новый объект Attr.
createAttributeNS() Создать узел атрибута с указанным именем и пространством имен, и вернуть новый объект Attr.
createCDATASection() Создать узел раздела CDATA.
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-документа.

Свойства Description
name Возврат названия DTD.
publicId Возврат общественного идентификатора DTD.
systemId Возврат системного идентификатора внешнего DTD.

Методы объекта DocumentImplementation

Объект DOMImplementation выполняет операции, независимые от модели документа.

Метод Description
createDocument() Создание нового DOM Document объекта с указанным типом документа.
createDocumentType() Создание пустого узла DocumentType.
getFeature() Возврат объекта API, реализующего указанные характеристики и версии (если он существует).
hasFeature() Проверка того, реализует ли DOM-реализация определенные характеристики и версии.

Свойства объекта ProcessingInstruction

Объект ProcessingInstruction представляет обработчик.

Обработчик используется в качестве метода для сохранения информации, специфичной для обработчика, в тексте XML-документа.

Свойства Description
data Установка или возврат содержимого обработчика.
target Возврат цели обработчика.

Вершина

Объект Element в XML DOM

Свойства объекта Element

Свойства Description
attributes Возврат свойств элемента в виде NamedNodeMap.
baseURI Возвратить абсолютный базовый URI элемента.
childNodes Возвратить NodeList подузлов элемента.
firstChild Возвратить первый подэлемент элемента.
lastChild Возвратить последний подэлемент элемента.
localName Возвратить локальную часть имени элемента.
namespaceURI Возвратить URI пространства имен элемента.
nextSibling Возвратить узел, который непосредственно следует данному элементу.
nodeName Возвратить имя узла, в зависимости от его типа.
nodeType Вернуть тип узла.
ownerDocument Возвратить корневой элемент (документ) элемента.
parentNode Возвратить родительский узел элемента.
prefix Установить или вернуть префикс пространства имен элемента.
previousSibling Возвратить узел, который непосредственно предшествует данному элементу.
schemaTypeInfo Возвратить тип информации, связанной с элементом.
tagName Возвратить имя элемента.
textContent Установить или вернуть текстовое содержимое элемента и всех его потомков.

Методы объекта Element

Метод Description
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) Если свойство isId объекта Attribute равно true, то этот метод объявляет指定的 свойство как пользовательский确定的 идентификатор.
setIdAttributeNS(uri,name,isId) Если свойство isId объекта Attribute равно true, то этот метод объявляет指定的 свойство (с命名ным пространством) как пользовательский确定的 идентификатор.
setIdAttributeNode(idAttr,isId) Если свойство isId объекта Attribute равно true, то этот метод объявляет指定的 свойство как пользовательский确定的 идентификатор.

Вершина

Свойства объекта Attr

Свойства Description
baseURI Возвращает абсолютный базовый URI свойства.
isId Если свойство является типа id, то возвращает true,否则 false.
localName Возвращает локальную часть имени свойства.
name Возвращает имя свойства.
namespaceURI Возвращает URI пространства имен свойства.
nodeName Вернуть имя узла, в зависимости от его типа.
nodeType Вернуть тип узла.
nodeValue Установить или вернуть значение узла, в зависимости от его типа.
ownerDocument Вернуть корневой элемент (документ) атрибута.
ownerElement Вернуть элемент, к которому относится атрибут.
prefix Установить или вернуть префикс命名ного пространства атрибута.
schemaTypeInfo Вернуть тип информации, связанный с этим атрибутом.
specified

Если значение атрибута было установлено в документе, то вернуть true;

Если значение атрибута является defaultValue в DTD/Schema, то вернуть false.

textContent Установить или вернуть текстовое содержимое атрибута.
value Установить или вернуть значение атрибута.

Вершина

Объект Text в XML DOM

Атрибуты объекта Text

Свойства Description
data Установить или вернуть текст элемента или属性的.
isElementContentWhitespace Проверить, содержит ли текстовый узел пробельные символы.
length Вернуть длину текста элемента или属性的.
wholeText Вернуть все текстовые узлы, смежные с этим узлом, объединенные по порядку документа.

Методы объекта Text

Метод Description
appendData() Присоединить данные к узлу.
deleteData() Удалить данные из узла.
insertData() Вставить данные в узел.
replaceData() Заменить данные в узле.
replaceWholeText(text) Заменить текст узла и всех смежных текстовых узлов указанным текстом.
splitText() Разделить текстовый узел на два.
substringData() Извлечь данные из узла.

Вершина

Объект CDATASection в XML DOM

Атрибуты объекта CDATASection

Свойства Description
data Установить или вернуть текст узла.
length Вернуть длину CDATA части.

Методы объекта CDATASection

Метод Description
appendData() Присоединить данные к узлу.
deleteData() Удалить данные из узла.
insertData() Вставить данные в узел.
replaceData() Заменить данные в узле.
splitText() Разделить узел CDATA на два узла.
substringData() Извлечь данные из узла.

Вершина

Объект Comment в XML DOM

Атрибуты объекта Comment

Свойства Description
data Установить или вернуть текст узла.
length Вернуть длину текста узла.

Методы объекта Comment

Метод Description
appendData() Присоединить данные к узлу.
deleteData() Удалить данные из узла.
insertData() Вставить данные в узел.
replaceData() Заменить данные в узле.
substringData() Извлечь данные из узла.

Вершина

Объект XMLHttpRequest в XML DOM

Методы объекта XMLHttpRequest

Метод Description
abort() Отменить текущий запрос.
getAllResponseHeaders() Вернуть информацию заголовков.
getResponseHeader() Вернуть значение指定的 HTTP заголовка ответа.
open(method,url,async,uname,pswd)

Указать тип запроса, URL, должны ли запросы обрабатываться асинхронно, а также другие дополнительные свойства запроса.

  • method: тип запроса: GET или POST
  • url: положение файла на сервере
  • async: true (асинхронно) или false (синхронно)
send(string)

Отправляет запрос на сервер.

string: Используется только для запросов POST

setRequestHeader() Добавляет пары тег/значение в заголовки, которые будут отправлены.

Свойства объекта XMLHttpRequest

Свойства Description
onreadystatechange Хранит функцию (или имя функции), которая автоматически вызывается при каждом изменении свойства readyState.
readyState

Сохраняет состояние XMLHttpRequest. Изменения от 0 до 4:

  • 0: Запрос не инициализирован
  • 1: Установлено соединение с сервером
  • 2: Запрос получен
  • 3: Обработка запроса
  • 4: Запрос завершен, ответ готов
responseText Возвращает данные ответа в виде строки.
responseXML Возвращает данные ответа в виде XML-данных.
status Возвращает номер состояния (например, "404" означает "Не найдено", или "200" означает "OK").
statusText Возвращает текст состояния (например, "Не найдено" или "OK").

Вершина

Элементы XSD

XSLT элемент Объяснение
all Определяет, что подэлементы могут出现 в любом порядке, и каждый подэлемент может появляться нулевое или одно раза.
annotation Элемент annotation является顶层 элементом, который определяет комментарии схемы.
any Позволяет создателю расширять XML-документ с помощью элементов, не определенных схемой.
anyAttribute Позволяет создателю расширять XML-документ с помощью атрибутов, не определенных схемой.
appInfo Указание информации, которую приложение должно использовать в элементе annotation.
Apply templates to the current element or its child elements. Определение атрибута.
attributeGroup Определение группы атрибутов, используемых в определении сложного типа.
choice Разрешает включение только одного элемента в содержимое, указанное в объявлении <choice>.
complexContent Определение расширения или ограничения сложного типа (включая смешанное содержимое или только элементы).
complexType Определение сложного типа.
documentation Определение текстовых комментариев в схеме.
element Определение элемента.
extension Расширение существующих элементов simpleType или complexType.
field Указание XPath-выражения, которое определяет значение для использования в определении ограничения идентификатора.
group Определяет группу элементов, используемых в определении сложного типа.
import Добавление нескольких схем с различными целевыми пространствами имен в документ.
include Добавление нескольких схем с одним целевым пространством имен в документ.
key Указание того, что значение атрибута или элемента (или kombinatsiya znaceniya atributa ili elementa) должно быть ключом в указанном диапазоне.
keyref Указание того, что значение атрибута или элемента (или kombinatsiya znaceniya atributa ili elementa) должно соответствовать значению указанного ключа или уникального элемента.
list Определяет простой тип как список значений指定的 типа данных.
notation Описание формата данных, не являющихся XML, в документе XML.
redefine Передефинирует простые и сложные типы, группы и группы атрибутов, полученные из внешних файлов схемы.
restriction Определяет ограничения для simpleType, simpleContent или complexContent.
schema Определяет корневой элемент схемы.
selector Указание XPath-выражения, которое выбирает группу элементов по ограничению.
sequence Требует, чтобы подэлементы появлялись в порядке. Каждый подэлемент может появляться от 0 до любого количества.
simpleContent Содержит расширение или ограничение элементов complexType и не содержит никаких элементов.
simpleType Определяет простой тип, который устанавливает ограничения и информацию о значениях атрибутов или элементов, содержащих только текст.
union Определяет множество, определенное несколькими simpleType.
unique Указание того, что значение атрибута или элемента (или kombinatsiya znaceniya atributa ili elementa) должно быть уникальным в указанном диапазоне.

Ограничения типа данных XSD

См. Ограничения XSD / Facets

Ограничение Description
enumeration Определяет список приемлемых значений.
fractionDigits Определяет максимальное количество знаков после запятой. Оно должно быть больше или равно 0.
length Определяет точное количество разрешенных символов или элементов списка. Оно должно быть больше или равно 0.
maxExclusive Определяет верхний предел значений. Допустимые значения должны быть меньше этого значения.
maxInclusive Определяет верхний предел значений. Допустимые значения должны быть меньше или равны этому значению.
maxLength Определяет максимальное количество разрешенных символов или элементов списка. Оно должно быть больше или равно 0.
minExclusive Определяет нижний предел значений. Допустимые значения должны быть больше этого значения.
minInclusive Определяет нижний предел значений. Допустимые значения должны быть больше или равны этому значению.
minLength Определение минимального числа разрешенных символов или элементов списка. Оно должно быть больше или равно 0.
Определение минимального числа разрешенных символов или элементов списка. Оно должно быть больше или равно 0. pattern
Определение точного последовательного набора разрешенных символов. totalDigits
Определение точного числа разрешенных арабских цифр. Оно должно быть больше 0. whiteSpace

Вершина

Определение обработки пробельных символов (заголовки, каретки, пробелы и табуляторы).

XSLT элемент Description
элемент apply-imports
Применение правил шаблонов из импортированной таблицы стилей. apply-templates
Apply templates to the current element or its child elements. Добавление атрибута к элементу.
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 Определение mặc định hành động của yếu tố <choose>.
output Определение формата выводимого документа.
param Декларация локального или глобального параметра.
preserve-space Использование для определения элементов, сохраняющих пробельные символы.
processing-instruction Создание узла обработки инструкций.
sort Сортировка результатов.
strip-space Определение элементов, из которых должны быть удалены пробельные символы.
stylesheet Определяет корневой элемент стиля.
template Правила, применяемые при совпадении указанного узла.
text Генерирует текстовый узел через стиль.
transform Определяет корневой элемент стиля.
value-of Извлекает значение выбранного узла.
variable Объявляет локальные или глобальные переменные.
when Определяет действие элемента <choose>.
with-param Определяет значение параметра, который должен быть传入 шаблону.

Вершина

Функции XSLT, XPath и XQuery

Функции доступа

Name Объяснение
fn:node-name(node) Возвращает имя узла параметра.
fn:nilled(node) Возвращает булево значение, указывающее, отказался ли от параметра узел.
fn:data(item.item,...) Принимает последовательность элементов и возвращает последовательность атомарных значений.
  • fn:base-uri()
  • fn:base-uri(node)
Возвращает значение атрибута base-uri текущего узла или заданного узла.
fn:document-uri(node) Возвращает значение атрибута document-uri заданного узла.

Функции ошибок и отладки

Name Объяснение
  • fn:error()
  • fn:error(error)
  • fn:error(error,description)
  • fn:error(error,description,error-object)

Пример: 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) Используется для отладки запросов.

Функции чисел

Name Объяснение
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

Функции для работы со строками

Name Объяснение
fn:string(арг)

Возвращает строковое значение аргумента. Аргумент может быть числом, логической величиной или набором узлов.

Пример: 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-to-codepoints("Thérèse")

Результат: 84, 104, 233, 114, 232, 115, 101

fn:codepoint-equal(comp1, comp2) В зависимости от сравнения по Unicode кодовым точкам, если значение comp1 равно значению comp2, то возвращается true. В противном случае возвращается false. (http://www.w3.org/2005/02/xpath-functions/collation/codepoint)
  • fn:compare(comp1, comp2)
  • fn:compare(comp1, comp2, collation)

Если comp1 меньше comp2, то возвращается -1. Если comp1 равно comp2, то возвращается 0. Если comp1 больше comp2, то возвращается 1. (В зависимости от используемого правила сравнения).

Пример: compare('ghi', 'ghi')

Результат: 0

fn:concat(строка, строка, ...)

Возвращает склеение строк.

Пример: concat('XPath ', 'is ', 'FUN!')

Результат: 'XPath is FUN!'

fn:склеить((строка, строка, ...), разделитель)

Использует параметр sep в качестве разделителя для возвращает скомбинированную строку из string параметров.

Пример: string-join(('We', 'are', 'having', 'fun!'), ' ')

Результат: ' We are having fun! '

Пример: string-join(('We', 'are', 'having', 'fun!'))

Результат: 'Wearehavingfun!'

Пример: string-join((), 'sep')

Результат: ''

  • fn:substring(string,start,len)
  • fn:substring(string,start)

Возвращает подстроку заданной длины, начинающуюся с позиции start. Индекс первого символа - 1. Если параметр len пропущен, возвращает подстроку от позиции start до конца строки.

Пример: substring('Beatles',1,4)

Результат: 'Beat'

Пример: substring('Beatles',2)

Результат: 'eatles'

  • fn:string-length(string)
  • fn:string-length()

Возвращает длину заданной строки. Если параметр string отсутствует, возвращает длину значения строки текущего узла.

Пример: string-length('Beatles')

Результат: 7

  • fn:normalize-space(string)
  • fn:normalize-space()

Удаляет пробельные символы в начале и конце заданной строки, заменяет все последовательности пробельных символов внутри на один и возвращает результат. Если параметр 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)

Заменяет string2 в string1 на 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)

Возвращает true, если параметр string соответствует указанному шаблону, в противном случае возвращает 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

Name Объяснение
fn:resolve-uri(relative,base)  

Функции, связанные с булевыми значениями

Name Объяснение
fn:boolean(arg) Возвращает булево значение для числа, строки или набора узлов.
fn:not(arg)

Сначала параметр还原ится в булево значение с помощью функции boolean().

Возвращает true, если булево значение false, в противном случае возвращает true.

Пример: not(true())

результат: false

fn:true()

Возвращает булево значение true.

Пример: true()

Результат: true

fn:false()

Возвращает булево значение false.

Пример: false()

результат: false

Функции, связанные с продолжительностью, датой и временем

Функция извлечения компонентов даты, времени и продолжительности

Name Объяснение
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 пуст, то возвращается дата без временной зоны.

В противном случае возвращается дата с временной зоной.

fn:adjust-time-to-timezone(time,timezone)

Если параметр timezone пуст, то возвращается время без временной зоны.

В противном случае возвращается время с временной зоной.

Функции, связанные с QNames

Name Объяснение
fn:QName()  
fn:local-name-from-QName()  
fn:namespace-uri-from-QName()  
fn:namespace-uri-for-prefix()  
fn:in-scope-prefixes()  
fn:resolve-QName()  

Функции для узлов

Name Объяснение
  • fn:name()
  • fn:name(nodeset)
Возвращает имя текущего узла или первого узла в указанном наборе узлов.
  • fn:local-name()
  • fn:local-name(nodeset)
Возвращает имя текущего узла или первого узла в указанном наборе узлов без префикса пространства имен.
  • fn:namespace-uri()
  • fn:namespace-uri(nodeset)
Возвращает 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:root()
  • fn:root(node)
Возвращает корень узла или указанного узла, являющийся корнем дерева узлов. Обычно это узел документа.

Функции для последовательностей

Общий функционал

Name Объяснение
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")

Результат (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, с добавлением значения параметра inserts в позицию, указанную параметром pos.

пример: 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,...)) возвращает элементы в порядке,决定的顺序是实现。

функция для тестирования объема последовательности

Name Объяснение
fn:zero-or-one(item,item,...) Если параметр содержит ноль или один элемент, то возвращает параметр,否则 генерирует ошибку.
fn:one-or-more(item,item,...) Если параметр содержит один или несколько элементов, то возвращает параметр,否则 генерирует ошибку.
fn:exactly-one(item,item,...) Если параметр содержит один элемент, то возвращает параметр,否则 генерирует ошибку.

Equals, Union, Intersection и Except

Name Объяснение
fn:deep-equal(param1,param2,collation) Если param1 и param2 равны彼此 (deep-equal), то возвращает true,否则 false.

Функции总计

Name Объяснение
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,...) Возвращает сумму значений каждого узла в заданном наборе узлов.

Функции генерации последовательностей

Name Объяснение
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:collection()
  • fn:collection(string)
 

Функции контекста

Name Объяснение
fn:position()

Возвращает индекс位置的 текущего обрабатываемого узла.

Пример: //book[position()<=3]

Результат: выбрать первые три элемента book

fn:last()

Return the number of items in the list of nodes being processed.

Example: //book[last()]

Result: select the last book element

fn:current-dateTime() Return the current dateTime (with timezone).
fn:current-date() Return the current date (with timezone).
fn:current-time() Return the current time (with timezone).
fn:implicit-timezone() Return the value of the implicit timezone.
fn:default-collation() Return the value of the default collation.
fn:static-base-uri() Return the value of base-uri.

XSLT functions

In addition, there are the following built-in XSLT functions:

Name Description
current() Return a node set that consists of the current node as its only member.
document() Used to access nodes in an external XML document.
element-available() Detect whether the XSLT processor supports the specified element.
format-number() Convert a number to a string.
function-available() Detect whether the XSLT processor supports the specified function.
generate-id() Return a string value that uniquely identifies the specified node.
key() Retrieve the elements previously marked with the <xsl:key> statement.
node-set Convert the tree to a node set. The resulting node set always contains a single node and is the root of the tree.
system-property() Return the value of the system property.
unparsed-entity-uri() Return the URI of the unparsed entity.

Вершина

Other XML DOM objects

Вершина