Download presentation
Presentation is loading. Please wait.
Published byRyder Laning Modified over 10 years ago
2
能夠利用 XPATH 與 Xalan 套件,撰寫 JAVA 程 式,進行 XML 文件的查詢功能
3
import org.apache.xpath.XPathAPI; Import org.w3c.dom.traversal.*; //for NodeIterator public class ApplyXPath { public void xxx() { String xpath = ….; // Set up a DOM tree to query. Document doc ….. // Use the simple XPath API to select a nodeIterator. NodeIterator nl = XPathAPI.selectNodeIterator(doc, xpath); Node n; while ((n = nl.nextNode()) != null) { if (isTextNode(n)) { // DOM may have more than one node corresponding to a single XPath text node. // Coalesce all contiguous text nodes at this level StringBuffer sb = new StringBuffer( n.getNodeValue() ); for (Node nn = n.getNextSibling(); isTextNode(nn);nn = nn. getNextSibling ()) { sb.append(nn. getNodeValue ()); } System.out.print(sb); } ….. }
4
Sample4 1. Files: Sample4.java testdata.xml xalan.jar serilizer.jar 2. Compile javac -classpath xalan.jar;serilizer.jar Sample4.java 3. Run java -classpath.;xalan.jar;serilizer.jar Sample4 // 範例 [@author] 操作說明
5
import org.apache.xpath.XPathAPI; Import org.w3c.dom.traversal.*; //for NodeIterator // 建立一個含有 namespace 的節點 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); DOMImplementation impl = builder.getDOMImplementation(); Document namespaceHolder = impl.createDocument("", "namespaceMapping", null); Element namespaceND = namespaceHolder.getDocumentElement(); String q_name = “xmlns:mcu”; String ns = “http://www.mcu.edu.tw”; namespaceND.setAttributeNS("http://www.w3.org/2000/xmlns/", q_name, ns); Node context_node = …. String xpath = …. NodeIterator nl =XPathAPI.selectNodeIterator(context_node, xpath, namespaceND ); 含有 namespace 宣告的元素 xmlns:mcu=“http://www.mcu.edu.tw”
6
Sample5 1. Files: Sample5.java testdata.xml xalan.jar serilizer.jar 2. Compile javac -classpath xalan.jar;serilizer.jar Sample5.java 3. Run java -classpath.;xalan.jar;serilizer.jar Sample5 //mcu: 範例 [@author] 操作說明
7
歸屬於 org.apache.xpath 套件 提供 6 個 XPATH 查詢功能 › Node selectSingleNode (Node contextNode, String str) › Node selectSingleNode (Node contextNode, String str, Node namespaceNode) › NodeIterator selectNodeIterator (Node contextNode, String str) › NodeIterator selectNodeIterator (Node contextNode, String str, Node namespaceNode) › NodeList selectNodeList (Node contextNode, String str) › NodeList selectNodeList (Node contextNode, String str, Node namespaceNode)
8
介紹 XPathAPI 類別 XPathAPI 類別在 XPATH 查詢的應用
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.