トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

javaでXpathを使う(2) の変更点

Top / javaでXpathを使う(2)

*javaでXpathを使う(2) [#mab7e333]

該当するXPathの要素があるかどうか知りたかったので作ったクラス。

 import java.io.StringReader;
 
 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 javax.xml.xpath.XPathFactory;
 
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import org.xml.sax.InputSource;
 
 public class UseXpath {
 
     Document docRdf = null;
     XPath xpath = null;
 
     public UseXpath(String dcndl) throws Exception {
         InputSource is = new InputSource(new StringReader(dcndl));
         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
         factory.setNamespaceAware(true);
         DocumentBuilder builder;
         builder = factory.newDocumentBuilder();
         docRdf = builder.parse(is);
 
         XPathFactory xPathFactory = XPathFactory.newInstance();
         xpath = xPathFactory.newXPath();
     }
     
     // 該当するXpathのノード数を返却
     public int getElementsCount(String expression)
             throws XPathExpressionException {
         Object result = xpath.evaluate(expression, docRdf,
                 XPathConstants.NODESET);
         NodeList list = (NodeList) result;
         return list.getLength();
     }
 
     // 該当するXpathのノードリストを返却
     public NodeList getElements(String expression)
             throws XPathExpressionException {
         Object result = xpath.evaluate(expression, docRdf,
                 XPathConstants.NODESET);
         return (NodeList) result;
     }
 
 }