使用Xpath递归输出所有数据

来源:互联网 发布:数控车床螺纹编程实例 编辑:程序博客网 时间:2024/06/09 18:28
public class TestMain {    public static void main(String[] args) throws Exception {        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();        DocumentBuilder builder =  factory.newDocumentBuilder();        InputStream inputStream = TestMain.class.getClassLoader().getResourceAsStream("mybatis-config.xml");        Document doc = builder.parse(inputStream);        XPath xPath = XPathFactory.newInstance().newXPath();        String expression ="/configuration";        Node node = (Node) xPath.evaluate(expression,doc, XPathConstants.NODE);        printNode(node);        //System.out.println(node.getNodeName()+":"+node.getNodeValue()+":"+node.getChildNodes().getLength());    }    public static void printNode(Node root){        System.out.println("NodeName:"+root.getNodeName()+"  NodeValue:"+root.getNodeValue());        NamedNodeMap attributes = root.getAttributes();        if(attributes!=null){            for(int i=0;i<attributes.getLength();i++){                Node item = attributes.item(i);                System.out.println("attributeName:"+item.getNodeName()+" attributeValue:"+item.getNodeValue());            }        }        NodeList childNodes = root.getChildNodes();        if(childNodes!=null){            for(int i=0;i<childNodes.getLength();i++){                Node child = childNodes.item(i);                if(child.getNodeName().equals("#text"))                    continue;                printNode(child);            }        }    }}
原创粉丝点击