是否可以使用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
我怎样才能得到值?
感谢
答案 0 :(得分:1)
你试过Google吗?第一个链接之一给了我一个在FileExchange上使用XPath的好例子:
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的部分。