zoukankan      html  css  js  c++  java
  • dom4j 使用原生xpath 处理带命名空间的文档

    测试文件

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>cn.zno</groupId>
        <artifactId>z-test</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>xmlunit</groupId>
                <artifactId>xmlunit</artifactId>
                <version>1.6</version>
                <scope>test</scope>
            </dependency>
    
        </dependencies>
    </project>
    View Code

    依赖

        <dependencies>
            <dependency>
                <groupId>dom4j</groupId>
                <artifactId>dom4j</artifactId>
                <version>1.6.1</version>
            </dependency>
            <dependency>
                <groupId>jaxen</groupId>
                <artifactId>jaxen</artifactId>
                <version>1.1.6</version>
            </dependency>
        </dependencies>

    测试类

    import java.io.InputStream;
    
    import javax.xml.transform.TransformerFactoryConfigurationError;
    
    import org.dom4j.Document;
    import org.dom4j.Node;
    import org.dom4j.io.SAXReader;
    
    public class Dom4jDemo {
    
        public static void main(String[] args) throws TransformerFactoryConfigurationError, Exception {
            InputStream is = Dom4jDemo.class.getResourceAsStream("/test.xml");
    
            SAXReader saxReader = new SAXReader();
            Document doc = saxReader.read(is);
    
            Node versionNode = doc.selectSingleNode("//*[local-name()='project']/*[local-name()='version']");
    
            System.out.println(versionNode.getText());
    
        }
    }

    结果

    0.0.1-SNAPSHOT

    注意:

    1) 这种方法简单的xpath还可以,复杂的不好写

    2)详细解读 https://www.w3.org/TR/xpath/

    3) xpath的缩写/全称

  • 相关阅读:
    jenkins插件开发
    常用模块-------hashlib (加密模块)
    树莓派在任意无线网下连接笔记本(借用笔记本屏幕)
    常用模块-------时间模块(time/datetime),随机数模块(random)
    pycharm常用的快捷方式及设置
    迭代器
    生成器
    获取行业和概念列表
    钉钉页面扫码登录中hmac加密签名
    获取钉钉开发access_token
  • 原文地址:https://www.cnblogs.com/zno2/p/7469337.html
Copyright © 2011-2022 走看看