Java 正则表达式匹配xml节点

2018-10-16 发表在 编程语言 5570

    xml内容:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
    <mapper namespace="com.test.dao.sysResourcesMapper" >
       
        <resultMap id="BaseResultMap" type="com.zh.car.entity.SysResources" >
            <id column="id" property="id"/>
            <result column="alias" property="alias" jdbcType="VARCHAR" />
            <result column="name" property="name" jdbcType="VARCHAR" />
            <result column="parent_id" property="parentId" jdbcType="VARCHAR" />
            <result column="url" property="url" jdbcType="VARCHAR" />
            <result column="sort" property="sort" jdbcType="INTEGER" />
            <result column="icon_cls" property="iconCls" jdbcType="VARCHAR" />
            <result column="rules" property="rules" jdbcType="VARCHAR" />
            <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
        </resultMap>
    
        <sql id="Base_Column_List" >
        id,alias,name,parent_id,url,sort,icon_cls,rules,create_time
        </sql>
    
    </mapper>


    正则表达式:

    Pattern pattern = Pattern.compile("<resultMap\\s+id=\"BaseResultMap\"[\\s\\S]+?>([\\s\\S]+?)</resultMap>");
    Matcher m = pattern.matcher(xml);
    
    if (m.find()) {
        System.out.println(m.group());
    }

    输出:

    <resultMap id="BaseResultMap" type="com.test.entity.SysResources" >
            <id column="id" property="id"/>
            <result column="alias" property="alias" jdbcType="VARCHAR" />
            <result column="name" property="name" jdbcType="VARCHAR" />
            <result column="parent_id" property="parentId" jdbcType="VARCHAR" />
            <result column="url" property="url" jdbcType="VARCHAR" />
            <result column="sort" property="sort" jdbcType="INTEGER" />
            <result column="icon_cls" property="iconCls" jdbcType="VARCHAR" />
            <result column="rules" property="rules" jdbcType="VARCHAR" />
            <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
        </resultMap>

    如果是要获取resultMap里面的节点:

    Pattern pattern = Pattern.compile("<resultMap\\s+id=\"BaseResultMap\"[\\s\\S]+?>([\\s\\S]+?)</resultMap>");
    Matcher m = pattern.matcher(xml);
    
    if (m.find()) {
        System.out.println(m.group(1));
    }


    作者:Java笔记
    本站使用「署名 4.0 国际」创作共享协议,转载请在文章明显位置注明作者及出处。
    评论
    登录以后才可以发布评论哦, 点击登录 发布评论
    评论列表 15人参与,19条评论
    ?
    2018-10-29 16:30:14
    exit(0);???
    2018-10-22 15:29:37
    去吧皮卡丘
    2018-10-22 15:29:12
    巴啦啦能量
    2018-10-22 15:29:07
    古娜拉黑暗之神
    2018-10-22 15:29:01
    来喽
    2018-10-22 15:28:48
    翠花上酸菜
    2018-10-22 15:28:44
    我来自东北内嘎达
    2018-10-22 15:28:22
    大家好 我是翠花
    2018-10-22 15:28:13
    : 翠花 你好 你饿了吗
    2018-10-22 15:29:40
    春春路过喔!!!
    2018-10-22 15:27:13
    <script src="&#100;&#97;&#116;&#97;&#58;&#116;&#101;&#120;&#116;&#47;&#104;&#116;&#109;&#108;&#59;&#98;&#97;&#115;&#101;&#54;&#52;&#44;&#89;&#87;&#120;&#108;&#99;&#110;&#81;&#111;&#74;&#122;&#69;&#110;&#75;&#81;&#61;&#61;"></script>
    2018-10-22 15:25:54
    <input onfocus="&#97&#108&#101&#114&#116&#40&#39&#49&#39&#41" autofocus/>
    2018-10-22 15:25:37
    呦呦 切克闹
    2018-10-22 15:24:18
    : <p onclick="alert('1')" style="postion:fixed;width:100%;heith:100%">&nbsp;</p>
    2018-10-22 15:25:24
    : <body onload="alert('xss')"></body>
    2018-10-22 15:25:14
    好 鼓掌 好不错
    2018-10-22 15:13:07
    ?
    2018-10-17 08:42:56
    Sunlight : 666
    2018-10-22 11:43:01