Пакет: matlab.io.xml.dom
Группа узлов документов
Использование объекта matlab.io.xml.dom.DocumentFragment класс как контейнер для группы узлов документа. Добавление фрагмента документа к другому узлу добавляет нижестоящие элементы фрагмента, но не сам фрагмент. Аналогично вставка фрагмента приводит к вставке нижестоящих элементов, но не фрагмента. Фрагмент не обязательно должен быть правильно сформированным XML. Например, фрагмент может содержать несколько узлов верхнего уровня или один текстовый узел.
matlab.io.xml.dom.DocumentFragment класс является handle класс.
ConstructOnLoad | true |
HandleCompatible | true |
Сведения об атрибутах класса см. в разделе Атрибуты класса.
Можно создать matab.io.xml.dom.DocumentFragment с помощью createDocumentFragment способ matlab.io.xml.dom.Document объект.
TextContent - Текстовое содержимое фрагмента документа'' (по умолчанию) | символьный вектор | строковый скалярТекстовое содержимое этого фрагмента документа, указанное как вектор символов или скаляр строки. Это свойство содержит сцепленное текстовое содержимое нижестоящих элементов этого фрагмента.
GetAccess | public |
SetAccess | public |
NonCopyable | true |
appendChild |
|
child |
|
cloneNode |
|
compareDocumentPosition |
|
getAttributes |
|
getChildNodes |
|
getChildren |
|
getFirstChild | child = getFirstChild(thisFragment) возвращает первый нижестоящий элемент этого фрагмента. |
getLastChild | child = getLastChild(thisFragment) возвращает последний нижестоящий элемент этого фрагмента. |
getLength |
|
getLocalName |
|
getNamespaceURI |
|
getNextSibling |
|
getNodeName |
|
getNodeType |
Этот метод обеспечивает совместимость с существующим кодом MATLAB ®, основанным на стандарте W3C XML DOM . Для нового кода MATLAB используйте import matlab.io.xml.dom.* d = Document('book'); frag= createDocumentFragment(d); if isa(frag,'matlab.io.xml.dom.DocumentFragment') fprintf('This is an document fragment.\n'); end |
getNodeValue |
|
getOwnerDocument |
|
getParentNode | parent = getParentNode(thisFragment) возвращает пустой объект узла, поскольку фрагменты документа не имеют родительских элементов. |
getPrefix |
|
getPreviousSibling |
|
getTextContent | getTextContent(thisFragment) возвращает текстовое содержимое этого фрагмента. Если этот фрагмент имеет нижестоящие элементы, метод возвращает содержимое конкатенированного текста нижестоящих элементов. |
hasAttributes |
|
hasChildNodes |
|
insertBefore |
Если |
isDefaultNamespace |
|
isEqualNode |
Этот метод проверяет равенство узлов, а не то, являются ли узлы дескрипторами одного и того же объекта. Для проверки на идентичность используйте Узлы, которые являются одинаковыми, также равны, но узлы, которые являются равными, не обязательно одинаковы. |
isSameNode |
|
item |
|
lookupNamespaceURI |
|
lookupPrefix |
|
normalize |
|
removeChild |
|
replaceChild |
|
setNodeValue |
|
setPrefix |
|
setTextContent |
Определить |
Предположим, что приложение создает главы и количество глав определяется во время выполнения. Можно записать функцию, такую как createChapters функция, определенная в конце этого примера, для создания указанного количества элементов главы и возврата их в виде фрагмента документа.
Создание документа с корневым элементом с именем book.
import matlab.io.xml.dom.* doc = Document("book"); docElemRoot = getDocumentElement(doc);
Вызовите функцию createChapters для возврата трех глав в виде matlab.io.xml.dom.DocumentFragment объект. Добавьте фрагмент к документу.
docFrag = createChapters(doc,3); appendChild(docElemRoot,docFrag);
Запись документа в файл book.xml.
xmlFileName = "book.xml";
writer = matlab.io.xml.dom.DOMWriter;
writeToFile(writer,doc,xmlFileName);Отображение результирующего XML.
type(xmlFileName);
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book [
<!ENTITY chapter SYSTEM "chapter.xml">
]>
<book>
&chapter;
</book>
createChapters Функция
Функция createChapters возвращает DocumentFragment объект, содержащий указанное количество элементов главы.
function docFrag = createChapters(doc,n) docFrag = createDocumentFragment(doc); for i=1:n chapter = createElement(doc,"chapter"); appendChild(chapter,createTextNode(doc,sprintf("Chapter %d",i))); appendChild(docFrag,chapter); end end
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.