2011-06-28

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

xpathを利用したXMLの解析プログラム。GAEでの稼働を想定していますので、本ページの内容は、下記のサイトを抜粋してます。
参考サイト: [技術]GAE/JでXML解析(xpath)を行う方法
xalanのパッケージに入っている下記の4つのライブラリが必要です。
serializer.jar,xalan.jar,xercesImpl.jar,xml-apis.jar,xsltc.jar
  1. import javax.xml.parsers.DocumentBuilder;  
  2. import javax.xml.parsers.DocumentBuilderFactory;  
  3. import javax.xml.parsers.ParserConfigurationException;  
  4. import javax.xml.xpath.XPath;  
  5. import javax.xml.xpath.XPathConstants;  
  6. import javax.xml.xpath.XPathExpressionException;  
  7.   
  8. import org.w3c.dom.Document;  
  9. import org.w3c.dom.NodeList;  
  10.   
  11. import org.xml.sax.InputSource;  
  12. import org.xml.sax.SAXException;  
  13.   
  14.     DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();  
  15.     domFactory.setNamespaceAware(true);  
  16.     DocumentBuilder builder;  
  17.     String xpathQuery="xpathを記述する";  
  18.     String xml="解析するXMLが入っているとする";  
  19.   
  20.   try {  
  21.    builder = domFactory.newDocumentBuilder();  
  22.     
  23.     Document doc = builder.parse(new InputSource(new StringReader(xml)));  
  24.     XPath xpath = new org.apache.xpath.jaxp.XPathFactoryImpl().newXPath();  
  25.     NodeList nodes = (NodeList)xpath.evaluate(xpathQuery, doc, XPathConstants.NODESET);  
  26.     for (int i = 0; i < nodes.getLength(); i++) {  
  27.         System.out.println(nodes.item(i).getNodeValue());  
  28.     }  
  29.     
  30.   } catch (ParserConfigurationException e) {  
  31.    // TODO Auto-generated catch block  
  32.    e.printStackTrace();  
  33.   } catch (SAXException e) {  
  34.    // TODO Auto-generated catch block  
  35.    e.printStackTrace();  
  36.   } catch (XPathExpressionException e) {  
  37.    // TODO Auto-generated catch block  
  38.    e.printStackTrace();  
  39.   }  


0 件のコメント:

コメントを投稿