java xml解析

xml解析首先想到了dom4j 当初学的时候 只知道用dom4j就可以解决大部分问题,而且demo也很简单

实战过程中发现dom4j在读取本地xml文件的时候 只用调用read()这个方法 里边传入本地xml文件地址 就可以获取了一个document对象


后来我把url改成一个借口 类似 http://123.150.41.139:9191/tradeweb/hq.jsp 这样的形式


发现报嵌套异常,大概意思是读xml格式不对 百度了好久发现 是已经读取了一边文件 第二遍读取的时候读取位置不对导致的。

后来发现 这给我陷入了一个误区


仔细研究了下http参数 发现

发现请求参数要修改一下才行

GetMethod method = new GetMethod(url);
        method.addRequestHeader("Accept-Encoding", "gzip");

注意这个gzip  原来为了保证传输速度,就把压缩的数据传送过来这边要解析


所以现在的问题 变成了java怎么解析远程的gzip包的形式


这个时候 采用了

HttpClient client = new HttpClient();// 生成执行get方法的客户端实例

        client.executeMethod(method);
        InputStream in = method.getResponseBodyAsStream();

这个方法


然后发现获取的数据是不正确的,数据大小只有全部数据的部分。而且似乎每次查询获得的数据大小都不同

第一个反应就是是不是 把读取的东西放到 buffer的时候 buffer太小导致的

可是把已经把buffer设置成惊人的1M仍然不行

这个时候仿佛看到了可能是 传递过来的数据是好几行 读取的时候只读取一行所致

写一个for循环 就可以了

最后要注意的是编码的问题

上代码


发现最近写的代码 很不规范啊




**************************************************

代码做了进一步修正 发现 这个方法更好用




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值