Importing XML Documents
findCbk = char(thisElement.getFirstChild.getData);
break;
end
end
4
Display the final results:
if ~isempty(findCbk)
msg = sprintf('Item "%s" has a callback of "%s."',...
findLabel, findCbk);
else
msg = sprintf('Did not find the "%s" item.', findLabel);
end
disp(msg);
For an additional example that creates a structure array to store data from an
XML file, see the
xmlread
function reference page.
8-5
Can't view pdf thumbnails - SDK application project:C# PDF Thumbnail Create SDK: Draw thumbnail images for PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
www.rasteredge.com
Can't view pdf thumbnails - SDK application project:VB.NET PDF Thumbnail Create SDK: Draw thumbnail images for PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
www.rasteredge.com
8
XML Documents
Exporting to XML Documents
To write data to an XML file, use the
xmlwrite
function.
xmlwrite
requires
that you describe the file in a Document Object Model (DOM) node. For an
introduction to DOM nodes, see “What Is an XML Document Object Model
(DOM)?” on page 8-2
For more information, see:
• “Creating an XML File” on page 8-6
• “Updating an Existing XML File” on page 8-8
Creating an XML File
Although each file is different, these are common steps for creating an XML
document:
1
Create a document node and define the root element by calling this method:
docNode =
com.mathworks.xml.XMLUtils.createDocument('root_element');
2
Get the node corresponding to the root element by calling
getDocumentElement
. The root element node is required for adding child
nodes.
3
Add element, text, comment, and attribute nodes by calling methods on the
document node. Useful methods include:
createElement
createTextNode
createComment
setAttribute
For a complete list of the methods and properties of
DOM nodes, see the
org.w3c.dom
package description at
http://download.oracle.com/javase/6/docs/api/
.
8-6
SDK application project:C# PDF copy, paste image Library: copy, paste, cut PDF images in
Description: Extract all images in a PDF document. Parameters: Name, Description, Valid Value. doc, Target document object, Can't be null.
www.rasteredge.com
SDK application project:C# PDF Page Replace Library: replace PDF pages in C#.net, ASP.NET
consecutive pages from the input PDF file starting at specified position. Parameters: Name, Description, Valid Value. newPages, The new page objects. Can't be null
www.rasteredge.com
Exporting to XML Documents
4
As needed, define parent/child relationships by calling
appendChild
on the
parent node.
Tip Text nodes are always children of element nodes. To add a text node, call
createTextNode
on the document node, and then call
appendChild
on the
parent element node.
Example — Creating an XML File with xmlwrite
Suppose that you want to create an
info.xml
file for the Upslope Area
Toolbox (described in “Display Custom Documentation”), as follows:
<?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>
To create this file using
xmlwrite
,follow these steps:
1
Create the document node and root element,
toc
:
docNode = com.mathworks.xml.XMLUtils.createDocument('toc');
2
Identify the root element, and set the
version
attribute:
toc = docNode.getDocumentElement;
toc.setAttribute('version','2.0');
3
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)
8-7
8
XML Documents
4
Add the comment:
product.appendChild(docNode.createComment(' Functions '));
5
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
6
Export the DOM node to
info.xml
,and view the file with the
type
function:
xmlwrite('info.xml',docNode);
type('info.xml');
Updating an Existing XML File
To change data in an existing file, call
xmlread
to import the file into a DOM
node. Traverse the node and add or change data using methods defined by the
World Wide Web consortium, such as:
getElementsByTagName
getFirstChild
getNextSibling
getNodeName
getNodeType
When the DOM node contains all your changes, call
xmlwrite
to overwrite
the file.
8-8
Exporting to XML Documents
For a complete list of the methods and properties of
DOM nodes, see the
org.w3c.dom
package description at
http://download.oracle.com/javase/6/docs/api/
.
For examples that use these methods, see:
• “Example — Finding Text in an XML File” on page 8-3
• “Example — Creating an XML File with xmlwrite” on page 8-7
xmlread
and
xmlwrite
8-9
8
XML Documents
8-10
9
Memory-Mapping Data
Files
• “Overview of Memory-Mapping” on page 9-2
• “The memmapfile Class” on page 9-7
• “Map a File to Memory” on page 9-10
• “Read a Mapped File” on page 9-24
• “Write to a Mapped File” on page 9-31
• “Delete a Memory Map” on page 9-39
• “Share Memory Between Applications” on page 9-40
9
Memory-Mapping Data Files
Overview of Memory-Mapping
In this section...
“What Is Memory-Mapping?” on page 9-2
“Benefits of Memory-Mapping” on page 9-2
“When to Use Memory-Mapping” on page 9-4
“Maximum Size of a Memory Map” on page 9-5
“Byte Ordering” on page 9-6
What Is Memory-Mapping?
Memory-mapping is a mechanism that maps a portion of a file, or an entire
file, on disk to a range of addresses within an application’s address space. The
application can then access files on disk in the same way it accesses dynamic
memory. This makes file reads and writes faster in comparison with using
functions such as
fread
and
fwrite
.
Benefits of Memory-Mapping
The principal benefits of memory-mapping are efficiency, faster file access,
the ability to share memory between applications, and more efficient coding.
Faster File Access
Accessing files via memory map is faster than using I/O functions such as
fread
and
fwrite
. Data are read and written using the virtual memory
capabilities that are built in to the operating system rather than having to
allocate, copy into, and then deallocate data buffers owned by the process.
MATLAB does not access data from the disk when the map is first constructed.
It only reads or writes the file on disk when a specified part of the memory
map is accessed, and then it only reads that specific part. This provides faster
random access to the mapped data.
9-2
Overview of Memory-Mapping
Efficiency
Mapping a file into memory allows access to data in the file as if that data had
been read into an array in the application’s address space. Initially, MATLAB
only allocates address space for the array; it does not actually read data from
the file until you access the mapped region. As a result, memory-mapped files
provide a mechanism by which applications can access data segments in an
extremely large file without having to read the entire file into memory first.
Efficient Coding Style
Memory-mapping in your MATLAB application enables you to access file
data using standard MATLAB indexing operations. Once you have mapped a
file to memory, you can read the contents of that file using the same type of
MATLAB statements used to read variables from the MATLAB workspace.
The contents of the mapped file appear as if they were an array in the
currently active workspace. You simply index into this array to read or write
the desired data from the file. Therefore, you do not need explicit calls to the
fread
and
fwrite
functions.
In MATLAB, if
x
is a memory-mapped variable, and
y
is the data to be written
to a file, then writing to the file is as simple as
x.Data = y;
9-3
9
Memory-Mapping Data Files
Sharing Memory Between Applications
Memory-mapped files also provide a mechanism for sharing data between
applications, as shown in the figure below. This is achieved by having each
application map sections of the same file. You can use this feature to transfer
large data sets between MATLAB and other applications.
Also, within a single application, you can map the same segment of a file
more than once.
When to Use Memory-Mapping
Just how much advantage you get from mapping a file to memory depends
mostly on the size and format of the file, the way in which data in the file is
used, and the computer platform you are using.
9-4
Documents you may be interested
Documents you may be interested