java通过XPath解析xml节点的代码详解

import java.io.File;import java.io.FileInputStream; import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.xpath.XPath;import javax.xml.xpath.XPathConstants;import javax.xml.xpath.XPathFactory; import org.w3c.dom.Document;import org.w3c.dom.Node;import org.w3c.dom.NodeList; public class FindElementsByAbsoluteLocationWithXPath {     public static void main(String[] args) throws Exception {         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();        dbf.setValidating(false);        DocumentBuilder db = dbf.newDocumentBuilder();         Document doc = db.parse(new FileInputStream(new File("in.xml")));         XPathFactory factory = XPathFactory.newInstance();         XPath xpath = factory.newXPath();         String expression;        Node node;        NodeList nodeList;         // 1. root element        expression = "/*";        node = (Node) xpath.evaluate(expression, doc, XPathConstants.NODE);        System.out.println("1. " + node.getNodeName());         // 2. root element (by name)        expression = "/rss";        node = (Node) xpath.evaluate(expression, doc, XPathConstants.NODE);        System.out.println("2. " + node.getNodeName());         // 3. element under rss        expression = "/rss/channel";        node = (Node) xpath.evaluate(expression, doc, XPathConstants.NODE);        System.out.println("3. " + node.getNodeName());         // 4. all elements under rss/channel        expression = "/rss/channel/*";        nodeList = (NodeList) xpath.evaluate(expression, doc, XPathConstants.NODESET);        System.out.print("4. ");        for (int i = 0; i < nodeList.getLength(); i++) {            System.out.print(nodeList.item(i).getNodeName() + " ");        }        System.out.println();         // 5. all title elements in the document        expression = "//title";        nodeList = (NodeList) xpath.evaluate(expression, doc, XPathConstants.NODESET);        System.out.print("5. ");        for (int i = 0; i < nodeList.getLength(); i++) {            System.out.print(nodeList.item(i).getNodeName() + " ");        }        System.out.println();         // 6. all elements in the document except title        expression = "//*[name() != 'title']";        nodeList = (NodeList) xpath.evaluate(expression, doc, XPathConstants.NODESET);        System.out.print("6. ");        for (int i = 0; i < nodeList.getLength(); i++) {            System.out.print(nodeList.item(i).getNodeName() + " ");        }        System.out.println();         // 7. all elements with at least one child element        expression = "//*[*]";        nodeList = (NodeList) xpath.evaluate(expression, doc, XPathConstants.NODESET);        System.out.print("7. ");        for (int i = 0; i < nodeList.getLength(); i++) {            System.out.print(nodeList.item(i).getNodeName() + " ");        }        System.out.println();         // 8. all level-5 elements (the root being at level 1)        expression = "/*/*/*/*";        nodeList = (NodeList) xpath.evaluate(expression, doc, XPathConstants.NODESET);        System.out.print("8. ");        for (int i = 0; i < nodeList.getLength(); i++) {            System.out.print(nodeList.item(i).getNodeName() + " ");        }        System.out.println();     } }

input:

            Java Tutorials and Examples 2        en-us                                http://www.javacodegeeks.com/                                        http://examples.javacodegeeks.com/            

输出:

1. rss2. rss3. channel4. title language item item5. title title title6. rss channel language item link item link7. rss channel item item8. title link title link

以上就是java通过XPath解析xml节点的代码详解的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1429027.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 02:09:18
下一篇 2025年12月9日 07:22:32

相关推荐

发表回复

登录后才能评论
关注微信