`

xml型字符串解析时存在& < >符号时的解决方案

xml 
阅读更多

问题产生:

       在接口调用得出一个xml型字符串,一直报错

The entityname must immediately follow the '&' in the entity reference

 

经查发现  xml的内容里存在有  &符号  而 通过dom4j读取时  会发生错误

 

在xml中 “&”“<”“>”这样的标签存放在内容里是不合法的,会经常出问题。

 

下面找到解决方法:实测   替换  &   是可行的。   

 

public void chartReplace(){
        String str2 = "<logentry revision='1'>" +
                "<msg>In this comment, I fixed a <bug>, and <added> file1&&file2.</msg>" +
                "</logentry>";
        System.out.println("original string: "+str2);
         
        //替换“&”:$1表示与(<msg>.*)的匹配子序列;$4表示与(.*</msg>)匹配的。
                     //&(?!amp;)表示匹配&而且后面不是amp;的字符串
        //"$1&amp;$3$4"得到的结果就是替换了<msg></msg>中的“&”为“&amp;”
        //由于每次只能替换掉一个“&”,所以循环执行替换,直到替换后与替换前的字符串相等。
        String str1 = "";
        while(!str2.equals(str1)){
            str1 = str2;
            str2 = str1.replaceAll("(<msg>.*)(&(?!amp;))(.*</msg>)", "$1&amp;$3");
        }
        System.out.println("firstly replace \"&\": "+str2);
         
        //替换“<”
        str1 = "";
        while(!str2.equals(str1)){
            str1 = str2;
            str2 = str1.replaceAll("(<msg>.*)(<)(.*</msg>)", "$1&lt;$3");
        }
        System.out.println("then replace \"<\": "+str2);
         
        //替换“<”
        str1 = "";
        while(!str2.equals(str1)){
            str1 = str2;
            str2 = str1.replaceAll("(<msg>.*)(>)(.*</msg>)", "$1&gt;$3");
        }
        System.out.println("finally replace \">\": "+str2);
    }

 

 

感谢

http://my.oschina.net/u/178218/blog/55293 

 
分享到:
评论

相关推荐

    map/list集合转化成xml字符串 xml字符串转化成map/list集合

    &lt;P&gt;map集合转化成xml字符串&lt;/P&gt; &lt;P&gt;xml字符串转化成map集合&lt;/P&gt; &lt;P&gt;list集合转化成xml字符串&lt;/P&gt; &lt;P&gt;xml字符串转化成list集合&lt;/P&gt;

    解析xml格式字符串

    计息xml格式的字符串,封装到Map&lt;String,Object&gt;集合中

    java解析xml字符串

    java解析xml字符串,添加属性,更新属性等

    2017XML字符串转对象Object 实现工具

    实现 XML字符串转VO对象的实现 1.0:标签读取,属性读取,List类型标签实现 以下是 测试说明 原XML: &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;ROOT&gt; &lt;HEADER NAME="HEADERname" name_cn="头名称"&gt;...

    xml字符串解析

    将xml写成字符串的形式,采用dom4j进行解析,一个简单的例子

    解析XML特殊字符方法

    解析XML特殊字符方法有二种 XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符

    纯C语言解析xml字符串

    纯C语言解析xml字符串,有实例,保证可用,含makefile xmlparse.c xmlparse.h testxml.c 目录:/export/home/chcard/testxml 日志:/export/home/chcard/log testxml.c 是一个测试用例,包含了常用的方法,并有注解 ...

    jdom解析XML文件and把字符串解析成XML

    jdom解析XML文件and把字符串解析成XML.txt jdom解析XML文件and把字符串解析成XML.txtjdom解析XML文件and把字符串解析成XML.txt

    C#编程经验技巧宝典

    85&lt;br&gt;&lt;br&gt;0130 复制字符串中指定的字符 85&lt;br&gt;&lt;br&gt;0131 巧截字符串的数字 86&lt;br&gt;&lt;br&gt;0132 如何存储变长字符串 86&lt;br&gt;&lt;br&gt;0133 在进行字符串比较时忽略大小写 87&lt;br&gt;&lt;br&gt;0134 如何去除字符串尾空格 87&lt;br&gt;...

    PB解析XML字符串 把XML 变为数据窗口

    PB解析XML字符串 把XML 变为数据窗口,然后可以方便的获取各字段内容,内含源码PB解析XML字符串 把XML 变为数据窗口,然后可以方便的获取各字段内容,内含源码

    jdk10+ java.lang.NoClassDefFoundError: javax/xml/ws/Service 错误

    1、解决方案jdk降级至1.8之前 2、由于JDK9以后,去除了javax.xml包需要引入对应的jar包 &lt;dependency&gt; &lt;groupId&gt;javax.activation&lt;/groupId&gt; &lt;artifactId&gt;javax.activation-api&lt;/artifactId&gt; &lt;version&gt;1.2.0&lt;/...

    使用javascript解析xml文件或xml格式字符串中文WORD版

    资源名称:使用Javascript解析xml文件或xml格式字符串 中文WORD版   内容简介: 本文档主要讲述的是使用Javascript解析xml文件或xml格式字符串;javascript中,不论是解析xml文件,...

    解析xml数组,配置好节点IbpsBankCodeConf/ibps/ibp和xml字符串即可转换成List<Map<?,?>>

    &gt;"&lt;IbpsBankCodeConf&gt;" + " &lt;ibps code='322'&gt;" + " &lt;ibps name='测试银行' ECFlag='2' paySysBankCode='322290000011' eisBankCode='null' eisSiteCode='1' /&gt;\n" + " &lt;ibpsName name='测试银行爱博家园支行' ...

    dom4j解析xml字符串

    // 下面的是通过解析xml字符串的 doc = DocumentHelper.parseText(xml); // 将字符串转为XML Element rootElt = doc.getRootElement(); // 获取根节点 System.out.println("根节点:"+ rootElt.getName()); // ...

    字符串转化为XML文件

    字符串转化为XML文件 本文将详细介绍字符串转化为XML文件的知识点,包括XML文件的基本结构、StringBuilder类的使用、XML文档对象模型(DOM)、XML文件的保存等。 XML文件的基本结构 XML(Extensible Markup ...

    C++解析xml文档或者xml字符串方法

    由于在javascript中不存在指针概念,故在xml页面调用OCX控件时,以前控件中的输出参数通过指针返回在...然而怎么去解析它呢,而又怎么去做一个xml字符串呢,通过研究学习,以下是当然已有的解决方案。开发环境:VS2010

    JAVA JAXB 解析XML嵌套子节点为字符串

    JAVA JAXB 解析XML嵌套子节点为字符串

    C# 方式生成xml格式字符串

    生成xml格式字符串、序列化XML 对象=》XML文本、反序列化 XML文本=》对象 等方法,对象和xml之间的相互转换、datatable方式转换为xml文本的工具类方法 C#语言

    java_dom解析xml xml java

    java dom解析xml &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;File&gt; &lt;Head&gt; &lt;FileVersion&gt;010000&lt;/FileVersion&gt; &lt;FileLength&gt;00000CC3&lt;/FileLength&gt; &lt;FileTime&gt;20100629173405&lt;/FileTime&gt; &lt;Key...

Global site tag (gtag.js) - Google Analytics