ОбъектXmlDocument
XmlDocument — это xmlОбъект модуля, который представляет весь XML-документ и обеспечивает доступ ко всему документу.
XmlDocument является корнем дерева документов и содержит все узлы всего XML-документа. Объект XmlDocument также предоставляет следующие функции:
- Создавайте узлы элементов, текстовые узлы, комментарии, инструкции по обработке и т. д.
- Доступ и изменение свойств документа и связанной информации (например, комментариев DTD и объявлений документов).
- Разбирать XML-документы
Ниже приведен пример кода, который использует объект XmlDocument для анализа XML-документа:
1
2
3
4
5
6
7
8
9var xml = require('xml');
var fs = require('fs');
var xmlStr = fs.readFile('test.xml');
var xmlDoc = xml.parse(xmlStr);
// get document root node name
var rootName = xmlDoc.documentElement.nodeName;
console.log(`文档根节点名称是 ${rootName}`);
В приведенном выше коде мы сначала используем метод fs
модуля readFile()
для чтения XML-файла и присваиваем поток файла переменной xmlStr
. Затем мы используем метод [xml](../../module/ifs/xml.md)
модуля для анализа XML-файла и присваиваем parse()
анализируемый объект переменной . Наконец, мы используем атрибут , чтобы получить корневой узел документа, получить его имя узла и вывести его на консоль.XmlDocument
xmlDoc
xmlDoc
documentElement
Поскольку XmlDocument является входом ко всему XML-документу, через него мы можем получать и изменять информацию, связанную с документом. Например, мы можем получить и изменить версию XML и отдельные атрибуты документа с помощью xmlDoc.xmlVersion
и соответственно. xmlDoc.xmlStandalone
С помощью этого метода мы также можем xmlDoc.createProcessingInstruction()
создавать новые узлы инструкций обработки.
Объект XmlDocument — это очень мощный тип, который обеспечивает удобство обработки и анализа XML-файлов.
отношения наследства
Конструктор
XmlDocument
Создайте объект XmlDocument.
1new XmlDocument(String type = "text/xml");
Параметры звонка:
- type: строка, указывает тип объекта документа, по умолчанию — «текст/xml", если вам нужно обработать html, то нужно указать "text/html"
свойства члена
inputEncoding
Строка, возвращает кодировку, используемую для документа (при синтаксическом анализе).
1readonly String XmlDocument.inputEncoding;
xmlStandalone
Логическое значение, устанавливает или возвращает значение, является ли документ автономным.
1Boolean XmlDocument.xmlStandalone;
xmlVersion
Строка, устанавливает или возвращает XML-версию документа.
1String XmlDocument.xmlVersion;
doctype
XmlDocumentType, возвращает объявление типа документа, связанное с документом
1readonly XmlDocumentType XmlDocument.doctype;
Для XML-документов без DTD возвращается ноль. Это свойство обеспечиваетXmlDocumentTypeПрямой доступ к объекту (дочернему узлу XmlDocument).
documentElement
XmlElement, возвращает корневой узел документа
1readonly XmlElement XmlDocument.documentElement;
head
XmlElement, возвращает головной узел HTML-документа, действителен только в режиме html.
1readonly XmlElement XmlDocument.head;
title
Строка, возвращает содержимое узла заголовка HTML-документа, допустимо только в режиме HTML.
1readonly String XmlDocument.title;
body
XmlElement, возвращает узел тела HTML-документа, действителен только в режиме html.
1readonly XmlElement XmlDocument.body;
nodeType
Целое число, возвращает тип узла.
1readonly Integer XmlDocument.nodeType;
NodeType разных объектов будет возвращать разные значения:
- XmlElement: ELEMENT_NODE(1)
- XmlAttr:ATTRIBUTE_NODE(2)
- XmlText: TEXT_NODE(3)
- XmlCDATASection: CDATA_SECTION_NODE(4)
- XmlProcessingInstruction: PROCESSING_INSTRUCTION_NODE(7)
- XmlComment:COMMENT_NODE(8)
- XmlDocument: ДОКУМЕНТ_НОД(9)
- XmlDocumentType: DOCUMENT_TYPE_NODE(10)
nodeName
Строка, возвращает имя узла в соответствии с его типом.
1readonly String XmlDocument.nodeName;
Имя узла разных объектов будет возвращать разные значения:
- XmlElement:имя элемента
- XmlAttr: имя атрибута
- XmlText: #текст
- XmlCDATASection: #cdata-раздел
- XmlProcessingInstruction: Возвращает указанную целевую цель
- XmlComment: #комментарий
- XmlDocument: #документ
- XmlDocumentType: имя типа документа
nodeValue
Строка, возвращает имя узла в соответствии с его типом.
1String XmlDocument.nodeValue;
Имя узла разных объектов будет возвращать разные значения:
- XmlElement: нулевой
- XmlAttr: значение атрибута
- XmlText: содержимое узла
- XmlCDATASection: содержимое узла
- XmlProcessingInstruction: Возвращает указанные данные содержимого.
- XmlComment: текст аннотации
- XmlDocument: нулевой
- XmlDocumentType: нулевой
ownerDocument
XmlDocument, возвращает корневой элемент узла (объект XmlDocument).
1readonly XmlDocument XmlDocument.ownerDocument;
parentNode
XmlNode, может вернуть родительский узел узла
1readonly XmlNode XmlDocument.parentNode;
childNodes
XmlNodeList, возвращает список дочерних узлов указанного узла
1readonly XmlNodeList XmlDocument.childNodes;
children
XmlNodeList, возвращает список узлов дочерних элементов указанного узла.
1readonly XmlNodeList XmlDocument.children;
firstChild
XmlNode, возвращает первый дочерний узел узла
1readonly XmlNode XmlDocument.firstChild;
lastChild
XmlNode, возвращает последний дочерний узел узла
1readonly XmlNode XmlDocument.lastChild;
previousSibling
XmlNode, возвращает узел, непосредственно предшествующий узлу (на том же уровне дерева). Если такого узла нет, то это свойство возвращает значение null.
1readonly XmlNode XmlDocument.previousSibling;
nextSibling
XmlNode, возвращает узел, следующий сразу за элементом (на том же уровне дерева). Если такого узла нет, атрибут возвращает значение null.
1readonly XmlNode XmlDocument.nextSibling;
firstElementChild
XmlNode, возвращает первый дочерний элемент узла узла
1readonly XmlNode XmlDocument.firstElementChild;
lastElementChild
XmlNode, возвращает последний дочерний элемент узла узла
1readonly XmlNode XmlDocument.lastElementChild;
previousElementSibling
XmlNode, возвращает узел элемента, непосредственно предшествующий узлу (на том же уровне дерева). Если такого узла нет, то это свойство возвращает значение null.
1readonly XmlNode XmlDocument.previousElementSibling;
nextElementSibling
XmlNode, возвращает узел элемента, следующий сразу за элементом (на том же уровне дерева). Если такого узла нет, атрибут возвращает значение null.
1readonly XmlNode XmlDocument.nextElementSibling;
textContent
Строка, запрашивает и устанавливает текст выбранного элемента. При запросе возвращает значения всех текстовых узлов внутри узла элемента; при установке удаляет все дочерние узлы и заменяет их одним текстовым узлом.
1String XmlDocument.textContent;
функция-член
load
Документ составляется путем анализа строки XML/HTML. Многоязычие не поддерживается.
1XmlDocument.load(String source);
Параметры звонка:
- source: строка, текст XML/HTML для анализа, в зависимости от типа, когда документ был создан.
Документ составляется путем анализа двоичной строки XML/HTML и автоматически преобразуется в соответствии с языком.
1XmlDocument.load(Buffer source);
Параметры звонка:
- source:Buffer, текст XML/HTML для анализа, в зависимости от типа документа при его создании.
getElementsByTagName
Возвращает список узлов со всеми элементами с указанным именем.
1XmlNodeList XmlDocument.getElementsByTagName(String tagName);
Параметры звонка:
- tagName: строка, имя тега, который необходимо получить. Значение «*» соответствует всем тегам
Результаты возврата:
- XmlNodeList, с указанным тегом в дереве документаXmlElementУзловойXmlNodeListсобирать. Порядок возвращаемых узлов элементов — это порядок, в котором они появляются в исходном документе.
Этот метод вернетXmlNodeListОбъект (может обрабатываться как массив, доступный только для чтения), который хранит все теги в документе с указанным именем тега.XmlElementУзлы сохраняются в том порядке, в котором они появляются в исходном документе.XmlNodeListОбъект является «живым», то есть если в документе будет добавлен или удален элемент с указанным именем тега, его содержимое будет автоматически обновляться по мере необходимости.
getElementsByTagNameNS
Возвращает список узлов всех элементов с указанным пространством имен и именем.
1
2XmlNodeList XmlDocument.getElementsByTagNameNS(String namespaceURI,
String localName);
Параметры звонка:
- namespaceURI: строка, указывает URI пространства имен, который необходимо получить. Значение «*» соответствует всем тегам
- localName: строка, имя тега, который необходимо получить. Значение «*» соответствует всем тегам
Результаты возврата:
- XmlNodeList, с указанным тегом в дереве документаXmlElementУзловойXmlNodeListсобирать. Порядок возвращаемых узлов элементов — это порядок, в котором они появляются в исходном документе.
Этот метод аналогичен методу getElementsByTagName(), за исключением того, что он извлекает элементы на основе пространства имен и имени.
getElementById
Возвращает элемент с указанным атрибутом id
1XmlElement XmlDocument.getElementById(String id);
Параметры звонка:
- id: строка, идентификатор, который нужно получить.
Результаты возврата:
- XmlElement, с указанным атрибутом id в дереве узловXmlElementузел
Этот метод будет проходить через узлы-потомки документа и возвращатьXmlElementОбъект узла, представляющий первый элемент документа с указанным атрибутом id. .
getElementsByClassName
Возвращает список узлов всех элементов с указанным именем класса.
1XmlNodeList XmlDocument.getElementsByClassName(String className);
Параметры звонка:
- className: строка, имя класса, которое нужно получить.
Результаты возврата:
- XmlNodeList, с указанным именем класса в дереве документаXmlElementУзловойXmlNodeListсобирать. Порядок возвращаемых узлов элементов — это порядок, в котором они появляются в исходном документе.
Этот метод вернетXmlNodeListОбъект (может обрабатываться как массив, доступный только для чтения), в котором хранятся все файлы с указанным именем класса в документе.XmlElementУзлы сохраняются в том порядке, в котором они появляются в исходном документе.XmlNodeListОбъект является «живым», то есть если в документе будет добавлен или удален элемент с указанным именем тега, его содержимое будет автоматически обновляться по мере необходимости.
createElement
Создать узел элемента
1XmlElement XmlDocument.createElement(String tagName);
Параметры звонка:
- tagName: строка, указывает указанное имя узла элемента.
Результаты возврата:
- XmlElement, возвращает вновь созданныйXmlElementузел с указанным именем метки
createElementNS
Создает узел элемента с указанным пространством имен.
1
2XmlElement XmlDocument.createElementNS(String namespaceURI,
String qualifiedName);
Параметры звонка:
- namespaceURI: строка, указывает URI пространства имен узла элемента.
- qualifiedName: строка, указывает указанное имя узла элемента.
Результаты возврата:
- XmlElement, возвращает вновь созданныйXmlElementузел с указанным именем метки
createTextNode
Создать текстовый узел
1XmlText XmlDocument.createTextNode(String data);
Параметры звонка:
- data: строка, определяет текст этого узла.
Результаты возврата:
createComment
Создать узел аннотации
1XmlComment XmlDocument.createComment(String data);
Параметры звонка:
- data: строка, определяет текст комментария этого узла.
Результаты возврата:
- XmlComment, возвращает вновь созданныйXmlCommentУзел, текст комментария — указанные данные
createCDATASection
создаватьXmlCDATASectionузел
1XmlCDATASection XmlDocument.createCDATASection(String data);
Параметры звонка:
- data: строка, указывает, что этот узел указывает данные CDATA.
Результаты возврата:
- XmlCDATASection, возвращает вновь созданныйXmlCDATASectionУзел, содержимое — указанные данные
createProcessingInstruction
создаватьXmlProcessingInstructionузел
1
2XmlProcessingInstruction XmlDocument.createProcessingInstruction(String target,
String data);
Параметры звонка:
- target: строка, указывает цель инструкции обработки.
- data: строка, указывает текст содержимого инструкции обработки.
Результаты возврата:
- XmlProcessingInstruction, вновь созданный узел ProcessingInstruction
hasChildNodes
Запросить, есть ли дочерние узлы
1Boolean XmlDocument.hasChildNodes();
Результаты возврата:
- Boolean, возвращает true, если есть дочерние узлы, в противном случае возвращает false
normalize
Объединить соседние текстовые узлы и удалить пустые текстовые узлы.
1XmlDocument.normalize();
Этот метод пройдет через все узлы-потомки текущего узла и нормализует документ, удалив пустые узлы Text и объединив все соседние узлы Text. Этот метод полезен для упрощения структуры дерева документа после вставки или удаления узлов.
cloneNode
Создает точную копию указанного узла
1XmlNode XmlDocument.cloneNode(Boolean deep = true);
Параметры звонка:
- deep: логическое значение, следует ли выполнять глубокое копирование. Если установлено значение true, клонированный узел клонирует все дочерние узлы исходного узла.
Результаты возврата:
- XmlNode, возвращает скопированный узел
Этот метод скопирует и вернет копию узла, на котором он был вызван. Если переданный ему аргумент верен, он также рекурсивно скопирует все узлы-потомки текущего узла. В противном случае он только копирует текущий узел. Возвращенный узел не принадлежит дереву документа, а его свойство родительский узел имеет значение null. При копировании узла Element будут скопированы все его свойства.
lookupPrefix
Возвращает префикс, соответствующий указанному URI пространства имен на текущем узле.
1String XmlDocument.lookupPrefix(String namespaceURI);
Параметры звонка:
- namespaceURI: строка, указывает соответствующий URI пространства имен.
Результаты возврата:
- String, возвращает соответствующий префикс, возвращает ноль, если не совпадает.
lookupNamespaceURI
Возвращает URI пространства имен, соответствующий указанному префиксу на текущем узле.
1String XmlDocument.lookupNamespaceURI(String prefix);
Параметры звонка:
- prefix: строка, указывает соответствующий префикс.
Результаты возврата:
- String, возвращает соответствующий URI пространства имен, возвращает значение null, если не совпадает.
insertBefore
Вставьте новый дочерний узел перед существующим дочерним узлом.
1
2XmlNode XmlDocument.insertBefore(XmlNode newChild,
XmlNode refChild);
Параметры звонка:
Результаты возврата:
- XmlNode, возвращает новый дочерний узел
Если newChild уже существует в дереве документов, он будет удален из дерева документов и повторно вставлен в новую позицию. Узлы из одного документа (или узлы, созданные одним документом) не могут быть вставлены в другой документ. То есть атрибут OwnerDocument объекта newChild должен совпадать с атрибутом OwnerDocument текущего узла.
insertAfter
Вставьте новый дочерний узел после существующего дочернего узла.
1
2XmlNode XmlDocument.insertAfter(XmlNode newChild,
XmlNode refChild);
Параметры звонка:
Результаты возврата:
- XmlNode, возвращает новый дочерний узел
Если newChild уже существует в дереве документов, он будет удален из дерева документов и повторно вставлен в новую позицию. Узлы из одного документа (или узлы, созданные одним документом) не могут быть вставлены в другой документ. То есть атрибут OwnerDocument объекта newChild должен совпадать с атрибутом OwnerDocument текущего узла.
appendChild
Добавляет новый дочерний узел в конец списка дочерних узлов узла.
1XmlNode XmlDocument.appendChild(XmlNode newChild);
Параметры звонка:
- newChild:XmlNode, укажите добавленный узел
Результаты возврата:
- XmlNode, возвращает этот новый дочерний узел
Если newChild уже существует в дереве документов, он будет удален из дерева документов и повторно вставлен в новую позицию. Узлы из одного документа (или узлы, созданные одним документом) не могут быть вставлены в другой документ. То есть атрибут OwnerDocument объекта newChild должен совпадать с атрибутом OwnerDocument текущего узла.
replaceChild
Заменить дочерний узел другим
1
2XmlNode XmlDocument.replaceChild(XmlNode newChild,
XmlNode oldChild);
Параметры звонка:
Результаты возврата:
- XmlNode, Если замена прошла успешно, этот метод может вернуть замененный узел. Если замена не удалась, он возвращает значение null.
Если newChild уже существует в дереве документов, он будет удален из дерева документов и повторно вставлен в новую позицию. Узлы из одного документа (или узлы, созданные одним документом) не могут быть вставлены в другой документ. То есть атрибут OwnerDocument объекта newChild должен совпадать с атрибутом OwnerDocument текущего узла.
removeChild
Удалить узел из списка дочерних узлов
1XmlNode XmlDocument.removeChild(XmlNode oldChild);
Параметры звонка:
- oldChild:XmlNode, указывает узел, который нужно удалить
Результаты возврата:
- XmlNode, Если удаление прошло успешно, этот метод может вернуть удаленный узел. В случае неудачи он возвращает значение null.
toString
Возвращает строковое представление объекта. Обычно возвращается «[Native Object]». Объект может быть повторно реализован в соответствии с его собственными характеристиками.
1String XmlDocument.toString();
Результаты возврата:
- String, возвращает строковое представление объекта
toJSON
Возвращает представление объекта в формате JSON, обычно возвращая коллекцию читаемых свойств, определенных объектом.
1Value XmlDocument.toJSON(String key = "");
Параметры звонка:
- key: Строка, не используется.
Результаты возврата:
- Value, возвращает значение, содержащее сериализуемый JSON