xml dom xpath

xml文件

books.xml

    <inventory>  
            <book year="2000">  
                    <title>Thinking in Java</title>  
                    <author>TEST</author>  
                    <publisher>JQGYCBS</publisher>  
                    <isbn>80958</isbn>  
                    <price>98.95</price>  
            </book>  
      
            <book year="2005">  
                    <title>ROR</title>  
                    <author>TEST</author>  
                    <publisher>DZGYCBS</publisher>  
                    <isbn>0743416910</isbn>  
                    <price>65.99</price>  
            </book>  
      
            <book year="1995">  
                    <title>H</title>  
                    <author>King</author>  
                    <publisher>Sc</publisher>  
                    <isbn>0553862</isbn>  
                    <price>77.50</price>  
            </book>  
    </inventory>  
 

java代码

package book;  
  
import javax.xml.parsers.DocumentBuilder;  
import javax.xml.parsers.DocumentBuilderFactory;  
import javax.xml.xpath.XPath;  
import javax.xml.xpath.XPathConstants;  
import javax.xml.xpath.XPathExpression;  
import javax.xml.xpath.XPathFactory;  
  
import org.w3c.dom.Document;  
import org.w3c.dom.NodeList;  
  
public class Test {  
        public static void main(String[] args) throws Exception {  
                DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();  
                factory.setNamespaceAware(true); // never forget this!  
                DocumentBuilder builder = factory.newDocumentBuilder();  
                Document doc = builder.parse("src/books.xml");  
  
                XPathFactory pathFactory = XPathFactory.newInstance();  
  
                XPath xpath = pathFactory.newXPath();  
  
                XPathExpression pathExpression = xpath  
                                .compile("//book[author='TEST']/title/text()");  
  
                Object result = pathExpression.evaluate(doc, XPathConstants.NODESET);  
  
                NodeList nodes = (NodeList) result;  
                for (int i = 0; i < nodes.getLength(); i++) {  
                        System.out.println(nodes.item(i).getNodeValue());  
                }  
        }  
}  
 

猜你喜欢

转载自llguo130.iteye.com/blog/1135997