zoukankan      html  css  js  c++  java
  • dom4j之selectSingleNode方法

    dom4j之selectSingleNode方法

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yumolan4325/article/details/78833298
    1 dom4j中有一个方法可以根据xpath路径来得到Node。xpath路径是以根节点开始。如:/root/node1,该方法就是selectSingleNode(String xpath)返回第一个匹配xpath的Node
    如:SAXReader saxReader=new SAXReader();
    Document document=saxReader.read(new File(xmlFileString));
    String xpath="/MSE_CS20_V1.0/response";
    Node node=document.selectSingleNode(xpath);//这就是通过xpath来得到Node。是以根节点开始的/MSE_CS20_V1.0/response
    System.out.println("通过selectSingleNode来得到node:"+node.getName());


    2 该方法是返回Node。selectSingleNode是返回第一个匹配的Node。dom4j中可以得到根节点、通过节点来循环得到该节点的子节点、通过节点name来得到该节点Element。
    如:public void testSelectSingleNode(String xmlFileString){
    SAXReader saxReader=new SAXReader();
    try {
    Document document=saxReader.read(new File(xmlFileString));
    Element root=document.getRootElement();//得到根节点
    String rootName=root.getName();
    System.out.println("根节点:"+rootName);
    Element element_=(Element)root.elementIterator().next();//通过循环来得到
    String xpath="/"+rootName+"/"+element_.getName();
    System.out.println("xpath:"+xpath);
    Element element__=root.element(element_.getName());//通过节点name来得到该节点Element
    System.out.println("通过element方法类得到节点:"+element__.getName());
    Node node=document.selectSingleNode(xpath);
    System.out.println("通过selectSingleNode来得到node:"+node.getName());
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }


    总结:现在读取xml文件通过dom4j。可以得到根节点,通过节点来循环得到该节点的子节点,通过节点name来得到Element。通过xpath路径来得到Node(可以强制转化为Element)。




    3 通过selectSingleNode方法可以通过xpath路径来得到Node。可以强制转化为Element
    如:SAXReader saxReader=new SAXReader();
    Document document=saxReader.read(new File(xmlFileString));
    Node node=document.selectSingleNode(xpath);
    Element elemnt__=(Element)node;//强制转化为Element
    System.out.println(elemnt__.getName());


    综述,selectSingleNode通过xpath可以得到Node,也可以强制转化为Element,xpath是以/开始,从根节点开始,如:/MSE_CS20_V1.0/response。MSE_CS20_V1.0表示根节点,response是根节点下的子节点
  • 相关阅读:
    闭包
    关于this
    插件开发(对象级)
    IFC
    flex.css
    js移动端滑动事件
    Android 手机下输入框获取焦点时, 输入法挡住输入框的 bug
    vue 组件化spreadjs预览excel
    feign 熔断工厂 fallbackFactory的简单实现
    bat脚本批量启动程序
  • 原文地址:https://www.cnblogs.com/libin6505/p/10132617.html
Copyright © 2011-2022 走看看