Чтобы записать данные к XML-файлу, используйте функцию xmlwrite. xmlwrite требует, чтобы вы описали файл в узле Объектной модели документа (DOM). Для введения в узлы DOM смотрите то, Что Объектная модель XML-документов (DOM)?
Для получения дополнительной информации см.:
Несмотря на то, что каждый файл отличается, это общие шаги для создания XML-документа:
Создайте узел документа и задайте корневой элемент путем вызова этого метода:
docNode = com.mathworks.xml.XMLUtils.createDocument('root_element');Получите узел, соответствующий корневому элементу путем вызова getDocumentElement. Корневой узел элемента требуется для добавления дочерних узлов.
Добавьте элемент, текст, комментарий, и припишите узлы вызывающими методами для узла документа. Полезные методы включают:
createElement
createTextNode
createComment
setAttribute
Для полного списка методов и свойств узлов DOM, см. описание пакета org.w3c.dom в https://docs.oracle.com/javase/7/docs/api.
По мере необходимости задайте родительские/дочерние отношения путем вызова appendChild на родительском узле.
Текстовые узлы всегда являются дочерними элементами узлов элемента. Чтобы добавить текстовый узел, вызовите createTextNode на узле документа, и затем вызовите appendChild на узле родительского элемента.
Предположим, что вы хотите создать файл info.xml для Upslope Area Toolbox (описанный в Отображении пользовательской документации), можно следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<toc version="2.0">
<tocitem target="upslope_product_page.html">Upslope Area Toolbox<!-- Functions -->
<tocitem target="demFlow_help.html">demFlow</tocitem>
<tocitem target="facetFlow_help.html">facetFlow</tocitem>
<tocitem target="flowMatrix_help.html">flowMatrix</tocitem>
<tocitem target="pixelFlow_help.html">pixelFlow</tocitem>
</tocitem>
</toc>
Чтобы создать этот файл с помощью xmlwrite, выполните эти шаги:
Создайте узел документа и корневой элемент, toc:
docNode = com.mathworks.xml.XMLUtils.createDocument('toc');Идентифицируйте корневой элемент и установите атрибут version:
toc = docNode.getDocumentElement;
toc.setAttribute('version','2.0');Добавьте узел элемента tocitem для страницы продукта. Каждый элемент tocitem в этом файле имеет атрибут target и узел дочернего текста:
product = docNode.createElement('tocitem');
product.setAttribute('target','upslope_product_page.html');
product.appendChild(docNode.createTextNode('Upslope Area Toolbox'));
toc.appendChild(product)Добавьте комментарий:
product.appendChild(docNode.createComment(' Functions '));Добавьте узел элемента tocitem для каждой функции, где target имеет форму :function_help.html
functions = {'demFlow','facetFlow','flowMatrix','pixelFlow'};
for idx = 1:numel(functions)
curr_node = docNode.createElement('tocitem');
curr_file = [functions{idx} '_help.html'];
curr_node.setAttribute('target',curr_file);
% Child text is the function name.
curr_node.appendChild(docNode.createTextNode(functions{idx}));
product.appendChild(curr_node);
endЭкспортируйте узел DOM в info.xml и просмотрите файл с функцией type:
xmlwrite('info.xml',docNode);
type('info.xml');Чтобы изменить данные в существующем файле, вызовите xmlread, чтобы импортировать файл в узел DOM. Пересеките узел и добавьте или измените методы использования данных, заданные консорциумом Всемирной паутины, такие как:
getElementsByTagName
getFirstChild
getNextSibling
getNodeName
getNodeType
Когда узел DOM будет содержать все ваши изменения, вызовите xmlwrite, чтобы перезаписать файл.
Для полного списка методов и свойств узлов DOM, см. описание пакета org.w3c.dom в https://docs.oracle.com/javase/7/docs/api.
Для примеров, которые используют эти методы, см.: