Пакет: matlab.io.xml.dom
Группа узлов документа
Используйте объект matlab.io.xml.dom.DocumentFragment
класс как контейнер для группы узлов документа. Добавление фрагмента документа к другому узлу добавляет дочерние элементы фрагмента, но не сам фрагмент. Точно так же вставка фрагмента вставляет дочерние элементы, но не фрагмент. Фрагмент не должен быть хорошо сформирован XML. Для примера фрагмент может содержать несколько узлов верхнего уровня или один текстовый узел.
The 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>
The 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.