博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XML 文件解析--标签内容长度限制问题
阅读量:6821 次
发布时间:2019-06-26

本文共 1073 字,大约阅读时间需要 3 分钟。

hot3.png

       近期在解析XML的时候遇到了些问题,第一个就是上一篇中说到的Unicode字符的问题,第二个就是标签内容长度太长(超过6k字符)造成解析错误。

    比如,要解析的XML文件内容如下,其中desc标签的内容长度很长(超过6000个字符),

 
   
101
   
 Java 
   
 simpsons lisa 
   
 ... apple lisa 
   
23.5
 

    在使用Scala 自带的XML 的 API 

val str = """
   
101
   
 Java 
   
 simpsons lisa 
   
 this is ... apple lisa 
   
23.5
 
"""val p = XML.loadString(str)print(p \ "desc")

    发现结果不是正常的文本内容,而是

  “... apple lisa </desc>

     <price>23.5

     </price>

     </book> this is ...

   desc解析越界

    查询了一些原因,在stackoverflow上有个回答:XML对标签内容的长度没有限制,但XML解析工具对此有限制,本人感觉有道理。对于长度超出限制(本机测试是6000+个字符的限制)的标签进行单独处理,本文用正则表达式去获取标签内容;

 eg:

if((p \ "desc").text.length() > 6000) {  val regex = Pattern.compile("
*?((>(?s).*?
))")  val matcher = regex.matcher(str)  var desc  if(matcher.find()) {   val match = matcher.group()   desc = match.substring(4, match.length()-4)   }}

转载于:https://my.oschina.net/devjing/blog/335521

你可能感兴趣的文章
小知识点
查看>>
python mongodb MapReduce
查看>>
int 操作
查看>>
(转)Android生命周期
查看>>
python-数据类型
查看>>
Google MapReduce/GFS/BigTable三大技术的论文中译版
查看>>
Linux atop监控工具部署
查看>>
struts2请求过程源码分析
查看>>
效率比较--集合
查看>>
jmeter IF控制器学习--使用实例
查看>>
memory prefix retro,re out 2
查看>>
WebDriver API 实例详解(四)
查看>>
dom01
查看>>
Android实例-如何使用系统剪切板(XE8+小米2)
查看>>
BAT-显示桌面图标
查看>>
PDO vs. MySQLi 选择哪一个?(PDO vs. MySQLi: Which Should You Use?)-转载
查看>>
信息安全系统设计基础第七周总结
查看>>
小A点菜 洛谷 p1164
查看>>
项目知识总结
查看>>
创建线程的三种方式
查看>>