问题产生:
在接口调用得出一个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&$3$4"得到的结果就是替换了<msg></msg>中的“&”为“&”
//由于每次只能替换掉一个“&”,所以循环执行替换,直到替换后与替换前的字符串相等。
String str1 = "" ;
while (!str2.equals(str1)){
str1 = str2;
str2 = str1.replaceAll( "(<msg>.*)(&(?!amp;))(.*</msg>)" , "$1&$3" );
}
System.out.println( "firstly replace \"&\": " +str2);
//替换“<”
str1 = "" ;
while (!str2.equals(str1)){
str1 = str2;
str2 = str1.replaceAll( "(<msg>.*)(<)(.*</msg>)" , "$1<$3" );
}
System.out.println( "then replace \"<\": " +str2);
//替换“<”
str1 = "" ;
while (!str2.equals(str1)){
str1 = str2;
str2 = str1.replaceAll( "(<msg>.*)(>)(.*</msg>)" , "$1>$3" );
}
System.out.println( "finally replace \">\": " +str2);
}
|
感谢
http://my.oschina.net/u/178218/blog/55293
相关推荐
<P>map集合转化成xml字符串</P> <P>xml字符串转化成map集合</P> <P>list集合转化成xml字符串</P> <P>xml字符串转化成list集合</P>
计息xml格式的字符串,封装到Map<String,Object>集合中
java解析xml字符串,添加属性,更新属性等
实现 XML字符串转VO对象的实现 1.0:标签读取,属性读取,List类型标签实现 以下是 测试说明 原XML: <?xml version="1.0" encoding="UTF-8"?> <ROOT> <HEADER NAME="HEADERname" name_cn="头名称">...
将xml写成字符串的形式,采用dom4j进行解析,一个简单的例子
解析XML特殊字符方法有二种 XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符XML特殊字符
纯C语言解析xml字符串,有实例,保证可用,含makefile xmlparse.c xmlparse.h testxml.c 目录:/export/home/chcard/testxml 日志:/export/home/chcard/log testxml.c 是一个测试用例,包含了常用的方法,并有注解 ...
jdom解析XML文件and把字符串解析成XML.txt jdom解析XML文件and把字符串解析成XML.txtjdom解析XML文件and把字符串解析成XML.txt
85<br><br>0130 复制字符串中指定的字符 85<br><br>0131 巧截字符串的数字 86<br><br>0132 如何存储变长字符串 86<br><br>0133 在进行字符串比较时忽略大小写 87<br><br>0134 如何去除字符串尾空格 87<br>...
PB解析XML字符串 把XML 变为数据窗口,然后可以方便的获取各字段内容,内含源码PB解析XML字符串 把XML 变为数据窗口,然后可以方便的获取各字段内容,内含源码
1、解决方案jdk降级至1.8之前 2、由于JDK9以后,去除了javax.xml包需要引入对应的jar包 <dependency> <groupId>javax.activation</groupId> <artifactId>javax.activation-api</artifactId> <version>1.2.0</...
资源名称:使用Javascript解析xml文件或xml格式字符串 中文WORD版 内容简介: 本文档主要讲述的是使用Javascript解析xml文件或xml格式字符串;javascript中,不论是解析xml文件,...
>"<IbpsBankCodeConf>" + " <ibps code='322'>" + " <ibps name='测试银行' ECFlag='2' paySysBankCode='322290000011' eisBankCode='null' eisSiteCode='1' />\n" + " <ibpsName name='测试银行爱博家园支行' ...
// 下面的是通过解析xml字符串的 doc = DocumentHelper.parseText(xml); // 将字符串转为XML Element rootElt = doc.getRootElement(); // 获取根节点 System.out.println("根节点:"+ rootElt.getName()); // ...
字符串转化为XML文件 本文将详细介绍字符串转化为XML文件的知识点,包括XML文件的基本结构、StringBuilder类的使用、XML文档对象模型(DOM)、XML文件的保存等。 XML文件的基本结构 XML(Extensible Markup ...
由于在javascript中不存在指针概念,故在xml页面调用OCX控件时,以前控件中的输出参数通过指针返回在...然而怎么去解析它呢,而又怎么去做一个xml字符串呢,通过研究学习,以下是当然已有的解决方案。开发环境:VS2010
JAVA JAXB 解析XML嵌套子节点为字符串
生成xml格式字符串、序列化XML 对象=》XML文本、反序列化 XML文本=》对象 等方法,对象和xml之间的相互转换、datatable方式转换为xml文本的工具类方法 C#语言
java dom解析xml <?xml version="1.0" encoding="UTF-8"?> <File> <Head> <FileVersion>010000</FileVersion> <FileLength>00000CC3</FileLength> <FileTime>20100629173405</FileTime> <Key...