2011年6月28日火曜日

[Java]XMLプログラミング ~xpathによる解析~

xpathを利用したXMLの解析プログラム。GAEでの稼働を想定していますので、本ページの内容は、下記のサイトを抜粋してます。
参考サイト: [技術]GAE/JでXML解析(xpath)を行う方法
xalanのパッケージに入っている下記の4つのライブラリが必要です。
serializer.jar,xalan.jar,xercesImpl.jar,xml-apis.jar,xsltc.jar
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;

import org.w3c.dom.Document;
import org.w3c.dom.NodeList;

import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

    DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
    domFactory.setNamespaceAware(true);
    DocumentBuilder builder;
    String xpathQuery="xpathを記述する";
    String xml="解析するXMLが入っているとする";

  try {
   builder = domFactory.newDocumentBuilder();
  
    Document doc = builder.parse(new InputSource(new StringReader(xml)));
    XPath xpath = new org.apache.xpath.jaxp.XPathFactoryImpl().newXPath();
    NodeList nodes = (NodeList)xpath.evaluate(xpathQuery, doc, XPathConstants.NODESET);
    for (int i = 0; i < nodes.getLength(); i++) {
        System.out.println(nodes.item(i).getNodeValue());
    }
  
  } catch (ParserConfigurationException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (SAXException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (XPathExpressionException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }


0 件のコメント:

コメントを投稿