Reader reader = new StringReader(strxml);//strxml是xml下边是实例
        SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(reader);
Element root = doc.getRootElement();//得到根节点

Element mailfj=root.getChild("邮件附件");

    List fjlist = mailfj.getContent();//得到附件集合
    
    Map<String,String> map = null;
    for (int i=0;i<fjlist.size();i++){
      map = new HashMap<String,String>();
         Element fj = (Element) fjlist.get(i);
         String title=fj.getAttributeValue("文件名称");
         String size=fj.getAttributeValue("文件大小");
         String content=fj.getChildTextTrim("文件内容");
  
    }上边是我写的解析xml的java方法,我现在只需要取出“邮件附件”中的信息,但是遍历出来是null。帮忙看看是那的问题谢谢了!xml:<?xml version="1.0" encoding="GB2312"?><邮件信息 标识符="10377:20" 紧急程度="一般" >
    <发件人>黄定东</发件人>
    <主题>测试邮件1</主题>
    <发送时间>2009-09-16 09:56:14</发送时间>
    <邮件大小 单位="KB">33</邮件大小>
    <邮件正文><![CDATA[我的测试]]></邮件正文>
   <邮件附件>
      <附件>
        <文件名称>1.doc</文件名称>
        <文件大小 单位="KB">32768</文件大小>
        <文件内容>4444444</文件内容>
      </附件> 
      <附件>
        <文件名称>2.doc</文件名称>
        <文件大小 单位="KB">32768</文件大小>
        <文件内容>55555555</文件内容>
      </附件>
   </邮件附件>

</邮件信息>

解决方案 »

  1.   


     private static void pareseXml(String fileName) {
            try {
                SAXBuilder builder = new SAXBuilder();
                String path = ClassLoader.getSystemResource(fileName).getFile();
                Document doc = builder.build(new File(path));
                Element foo = doc.getRootElement();
                List allChildren = foo.getChild("邮件附件").getChildren();
                String name = "";
                String size = "";
                String content = "";
                for (int i = 0; i < allChildren.size(); i++) {
                    name = ((Element) allChildren.get(i)).getChild("文件名称").getText();
                    size = ((Element) allChildren.get(i)).getChild("文件大小").getText();
                    content = ((Element) allChildren.get(i)).getChild("文件内容").getText();
                    System.out.println("name is :"+ name + " size is :" + size+" content is :"+content);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }