竹里馆→忆童年

独坐幽篁里,弹琴复长啸;深林人不知,明月来相照
posts - 9, comments - 23, trackbacks - 0, articles - 0
   :: 首页 :: 新随笔 :: 联系 ::  :: 管理

JDOM处理带Namespace的XML文件

Posted on 2007-07-19 14:51 忆童年 阅读(2936) 评论(3)  编辑  收藏 所属分类: XML and WebService

最近在开发中遇到读取XML文件出现的一些问题-JDOM技术读取


 1<?xml version="1.0" encoding="gb2312"?>
 2<Result xmlns="http://www.fiorano.com/fesb/activity/DBQueryOnInput2/Out">
 3   <row resultcount="1">
 4      <users_id>1001     </users_id>
 5      <users_name>wangwei   </users_name>
 6      <users_group>80        </users_group>
 7      <users_address>1001号   </users_address>
 8   </row>
 9   <row resultcount="1">
10      <users_id>1002</users_id>
11      <users_name>wangwei   </users_name>
12      <users_group>80        </users_group>
13      <users_address>1002号   </users_address>
14   </row>
15   <row resultcount="1">
16      <users_id>1003</users_id>
17      <users_name>wangwei   </users_name>
18      <users_group>80        </users_group>
19      <users_address>1003号   </users_address>
20   </row>
21   <row resultcount="1">
22      <users_id>1004</users_id>
23      <users_name>wangwei   </users_name>
24      <users_group>80        </users_group>
25      <users_address>1004号   </users_address>
26   </row>
27</Result>

代码当中 xmlns="http://www.fiorano.com/fesb/activity/DBQueryOnInput2/Out">
是这个XML文件的命名空间(Namespace)读取该文档的元素值时必须指定其命名空间不然会产生java.lang.NullPointerException 空指针异常
实际执行代码

public class DuXMLTest2 {
    
public void loadXMLdoc(){
        FileInputStream fi 
= null;
        
try {
            fi 
= new FileInputStream("Test.xml");
            SAXBuilder sb 
= new SAXBuilder();
            
try {
                Document doc 
= sb.build(fi);
                Element root 
= doc.getRootElement();
                Namespace ns 
= root.getNamespace();
                List jiedian 
= root.getChildren();
                Element et 
= null;
                
for(int i=0;i<jiedian.size();i++){
                    et 
= (Element) jiedian.get(i);
                    System.out.println(et.getChild(
"users_id",ns).getText());
                }

            }
 catch (JDOMException e) {
                
// TODO 自动生成 catch 块
                e.printStackTrace();
            }
 catch (IOException e) {
                
// TODO 自动生成 catch 块
                e.printStackTrace();
            }

        }
 catch (FileNotFoundException e) {
            
// TODO 自动生成 catch 块
            e.printStackTrace();
        }

    }

    
public static void main(String[] args){
        DuXMLTest2 dt 
= new DuXMLTest2();
        dt.loadXMLdoc();
    }

}

 


评论

# re: JDOM处理带Namespace的XML文件  回复  更多评论   

2007-11-16 10:55 by chengshuai
太感谢了,正想找这些东西呢

# re: JDOM处理带Namespace的XML文件  回复  更多评论   

2009-03-12 23:13 by lyg
太感谢了,研究2天了,终于搞定了,谢谢

# re: JDOM处理带Namespace的XML文件  回复  更多评论   

2009-12-27 20:31 by 说的
太谢谢楼主了

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问