matlab中的xpath xml文件

时间:2012-04-20 15:00:10

标签: matlab

是否可以使用Matlab中的xpath读取,比较和查找xml文件中的specefic字符串? 我找不到任何文件。

有人可以举个例子吗?

<?xml version="1.0" encoding="UTF-8"?> 
<address xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation='test.xsd'>
 <lists name="myState">
         <description name="-temp">-20</description>
         <description name="localization">north</description>  
         <description name="-state">false</description> 
  </lists>
</address>  
<language language="english" name=""> 
     <description name="population">5000</description> 
</language> 

此处可访问说明名称=“本地化”&gt; ,我做了:

docNode = xmlread(myXMLFILE);
factory = XPathFactory.newInstance;
xpath = factory.newXPath;

% compile and evaluate the XPath Expression
 expression = xpath.compile(adress/lists/description')
description = expression.evaluate(docNode, XPathConstants.NODE);
descriptionValue = phoneNumberNode.getTextContent  % this gives me -20 

我怎样才能得到值?

感谢

1 个答案:

答案 0 :(得分:1)

你试过Google吗?第一个链接之一给了我一个在FileExchange上使用XPath的好例子:

Using XPath from MATLAB

  

XPath包作为Java 5的一部分开始发布,因此我们可以使用它   来自MATLAB。这是一个简单的例子。

     ibm.com上的

The Java XPath API教程是对XPath的一个很好的介绍   在Java。

% Import the XPath classes
import javax.xml.xpath.*

% Construct the DOM.
doc = xmlread(which('demos/demos.xml'));

% Create an XPath expression.
factory = XPathFactory.newInstance;
xpath = factory.newXPath;
expression = xpath.compile('//demosection/label');

% Apply the expression to the DOM.
nodeList = expression.evaluate(doc,XPathConstants.NODESET);

% Iterate through the nodes that are returned.
for i = 1:nodeList.getLength
    node = nodeList.item(i-1);
    disp(char(node.getFirstChild.getNodeValue))
end

另一篇好文章在迈克的博客中 - XML and MATLAB: Navigating a Tree。它有一个专门用于使用XPath的部分。