Main Content

xmlwrite

Write XML Document Object Model node

Description

example

xmlwrite(filename,DOMnode) writes the Document Object Model (DOM) node DOMnode to the file filename.

Working with xmlwrite requires that you use the Java® API for XML Processing (JAXP). For more information, see https://docs.oracle.com/javase/7/docs/api.

example

chr = xmlwrite(DOMnode) returns a serialized DOM node as a character vector.

Examples

collapse all

Write an XML file by, first, creating a Document Object Model(DOM) node containing the XML data. Then, write the DOM node to an XML file. The final XML file should contain this text.

<?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>

First, create the DOM node object and root element, and populate the elements and the attributes of the node corresponding to the XML data.

docNode = com.mathworks.xml.XMLUtils.createDocument('toc');

Identify the root element, and set the version attribute.

toc = docNode.getDocumentElement;
toc.setAttribute('version','2.0');

Add the tocitem element node for the product page. Each tocitem element in this file has a target attribute and a child text node.

product = docNode.createElement('tocitem');
product.setAttribute('target','upslope_product_page.html');
product.appendChild(docNode.createTextNode('Upslope Area Toolbox'));
toc.appendChild(product);

Add comment.

product.appendChild(docNode.createComment(' Functions '));

Add a tocitem element node for each function, where the target is of the form 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

Finally, export the DOM node to an XML file named infoUAT.xml, and view the file using the type function.

xmlwrite('infoUAT.xml',docNode);
type('infoUAT.xml');
<?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>

Read a DOM node from a sample XML file and get the contents of the DOM node as a character vector.

Display the contents of the sample XML file, and then import the DOM node from the file.

sampleXMLfile = 'sample.xml';
type(sampleXMLfile)
<productinfo> 

<matlabrelease>R2012a</matlabrelease>
<name>Example Manager</name>
<type>internal</type>
<icon>ApplicationIcon.DEMOS</icon>

<list>
<listitem>
<label>Example Manager</label>
<callback>com.mathworks.xwidgets.ExampleManager.showViewer
</callback>
<icon>ApplicationIcon.DEMOS</icon>
</listitem>
</list>

</productinfo>
DOMnode = xmlread(sampleXMLfile);

Use xmlwrite to return the DOMnode object as a serialized character vector.

text = xmlwrite(DOMnode)
text = 
    '<?xml version="1.0" encoding="utf-8"?>
     <productinfo> 
     
        <matlabrelease>R2012a</matlabrelease>
        <name>Example Manager</name>
        <type>internal</type>
        <icon>ApplicationIcon.DEMOS</icon>
     
        <list>
           <listitem>
              <label>Example Manager</label>
              <callback>com.mathworks.xwidgets.ExampleManager.showViewer
     </callback>
              <icon>ApplicationIcon.DEMOS</icon>
           </listitem>
        </list>
     
     </productinfo>'

Input Arguments

collapse all

File name, specified as a character vector or string scalar containing the name of the local file or URL.

Data Types: char | string

Document Object Model(DOM) node, specified as a DOM node object.

Document Object Model is defined by the World Wide Web consortium. For more information, see The XML Document Object Model.

Introduced before R2006a