xml dom xpath

本文将展示如何解析XML文件并使用Java代码提取特定信息,通过实例演示了从XML文件中读取书籍信息的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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());  
                }  
        }  
}  
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值