0

Matlab の xpath を使用して、xml ファイル内の特定の文字列を読み取り、比較し、検索することは可能ですか? ドキュメントが見つかりません。

誰かが私に例を教えてもらえますか?

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

ここで description name="localization"> にアクセスするには、次のようにしました。

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 

の値を取得するにはどうすればよいですか?

ありがとう

4

1 に答える 1

1

Googleを試しましたか?最初のリンクの 1 つは、FileExchange で XPath を使用する良い例を示してくれました。

MATLAB からの XPath の使用

XPath パッケージは Java 5 の一部として出荷され始めたので、MATLAB から使用できます。これは簡単な例です。

ibm.comの Java XPath APIチュートリアルは、Java での XPath の入門として最適です。

% 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

もう 1 つの優れた記事は、Mike のブログであるXML and MATLAB: Navigating a Treeです。特に XPath の使用に関する部分があります。

于 2012-04-20T16:38:37.537 に答える