MyException - 我的异常网
当前位置:我的异常网» J2SE » java解析xml出错解决方案

java解析xml出错解决方案

www.MyException.Cn  网友分享于:2013-02-02  浏览:27次
java解析xml出错
xml文档
<?xml version="1.0" encoding="gb2312"?>
<invoice_resp>
<head>
<yyid>320100004056135002</yyid> 
<ywxtid>002</ywxtid > 
<qqsj>20110819161818</qqsj>
<bwlx>02</bwlx>
<swglm>320100004056135</swglm>
<fpdm>232001007717</fpdm> 
<fpfs>1</fpfs>
<fphmq>03539087</fphmq>
<fphmz>03539087</fphmz>
<bwlsh>320100004056655000091235103</bwlsh>
<xysj>2011-08-23 02:21:21</xysj>
<errorcode>0</errorcode>
<errmsg>成功执行</errmsg>
</head>
<invoices>
<invoice>
<fpdm>232001007717</fpdm>
<fphm>03539087</fphm>
<fpzt>1</fpzt>
<errorcode>0</errorcode>
<errmsg>命令执行成功00</errmsg>
</invoice>
</invoices>
</invoice_resp>

---------java code
package com.xml;
import java.io.*; 
import java.util.*; 
import org.dom4j.*; 
import org.dom4j.io.*; 

public class MyXMLReader { 

public static void main(String arge[]) { 
//long lasting = System.currentTimeMillis(); 
String lsh="";
String fpxh="";
String kprq="";
String fpdm="";
String fphm="";
String fpzt="";
try { 
File f=new File("C:\\baowen\\1.xml");
SAXReader reader=new SAXReader();
Document doc=reader.read(f);
Element root=doc.getRootElement();
Element foo;
for(Iterator i=root.elementIterator(); i.hasNext();)
{
foo=(Element)i.next();
System.out.println("lsh:"+foo.elementText("bwlsh"));
System.out.println("fpfs:"+foo.elementText("fpfs"));
System.out.println("xysj:"+foo.elementText("xysj"));
System.out.println("fpdm:"+foo.elementText("fpdm"));
System.out.println("fphmq:"+foo.elementText("fphmq"));
System.out.println("fpzt:"+foo.elementText("fpzt"));
}
}catch(Exception e){
e.printStackTrace();




取不到System.out.println("fpzt:"+foo.elementText("fpzt"));这个值
这个java代码还取两边而且第二边的值全部为空, 我只想取一边把全部值取到

谁指点下刚学

------解决方案--------------------
public Iterator elementIterator()
Returns an iterator over all this elements child elements. 
该方法返回的是foo的子节点,也就是两个,一个是head,一个是invoices
第一遍的foo实际是head结点,第二次是invoices结点
你再通过elementText获取对应名字子节点的text,如果不存在该子节点就为Null了
------解决方案--------------------
可以把Element的名字打印出来,你就知道具体操作到哪里了。
------解决方案--------------------
你可以通过递归遍历获取所有结点并判断是自己要的结点的话就进行操作,大致递归就是
Java code

    public static void print(Element element)  
    {  
        System.out.println(element);  //操作,可以用if(。。。) {xxx}判断之后操作
        List<Element> elements = element.elements();  //childs
        for(Element e : elements)  
        {  
            print(e);  //递归遍历所有子节点
        }  
          
    }

------解决方案--------------------
好深奥的东西!
------解决方案--------------------
探讨

无论是第一边还是第二边都不会取的fpzt的值,不知道为什么谁能帮我写个

------解决方案--------------------
探讨

无论是第一边还是第二边都不会取的fpzt的值,不知道为什么谁能帮我写个

文章评论

程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
那些争议最大的编程观点
那些争议最大的编程观点
10个调试和排错的小建议
10个调试和排错的小建议
我的丈夫是个程序员
我的丈夫是个程序员
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
我是如何打败拖延症的
我是如何打败拖延症的
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
总结2014中国互联网十大段子
总结2014中国互联网十大段子
旅行,写作,编程
旅行,写作,编程
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
如何成为一名黑客
如何成为一名黑客
程序员和编码员之间的区别
程序员和编码员之间的区别
老程序员的下场
老程序员的下场
为什么程序员都是夜猫子
为什么程序员都是夜猫子
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
漫画:程序员的工作
漫画:程序员的工作
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
鲜为人知的编程真相
鲜为人知的编程真相
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
每天工作4小时的程序员
每天工作4小时的程序员
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
程序员应该关注的一些事儿
程序员应该关注的一些事儿
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
一个程序员的时间管理
一个程序员的时间管理
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
代码女神横空出世
代码女神横空出世
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
编程语言是女人
编程语言是女人
中美印日四国程序员比较
中美印日四国程序员比较
程序员都该阅读的书
程序员都该阅读的书
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
程序员必看的十大电影
程序员必看的十大电影
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有