我的XML文件是下面的格式,不知道要怎样解析<?xml version="1.0" encoding="UTF-8"?>
<DetailObject><ValueObject hid='344345' ConfName='0' ConfContent='ADSL' ConfCount='32'/>
</DetailObject>

解决方案 »

  1.   

    用其他JDOM 或者是 dom4j 解析吧 
    下面是一个例子,你自己看看吧:
    要解析的xml文件:<?xml version="1.0" encoding="UTF-8"?>
    <school>
    <class name="class2">
    <student>
    <name>古天乐</name>
    <age>30</age>
    <score>59.3</score>
    </student>
    <student>
    <name>刘德华</name>
    <age>35</age>
    <score>59.6</score>
    </student>
    </class>
    <class name="class3">
    <student>
    <name>张学友</name>
    <age>36</age>
    <score>59.8</score>
    </student>
    </class>
    </school>下面是java代码:import java.io.File;
    import java.util.List;import org.dom4j.Attribute;
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    public class ReadXML4Dom4j { public static void main(String[] args){
    read("src/myschool.xml");
    } public static void read(String filename) {
    SAXReader sr = new SAXReader();
    try {
    Document dc = sr.read(new File(filename));
    //获取根元素
    Element root = dc.getRootElement();
    for(Object obj : root.elements()) {
    Element myclass = (Element)obj;
    //获取某个标签的属性,首先获得标签的属性,然后再获取内容 
    Attribute ab = myclass.attribute("name");
    String classname = ab.getText();
    System.out.println(classname+":");
    //获取myclass标签下面的所有子元素
    List<Element> students = (List<Element>)myclass.elements(); 

    if(students.size() == 1) {
    Element student  = students.get(0);
    //获取name标签
    Element nameEle = student.element("name");
    //获取name标签的内容
    String name = nameEle.getText();

    Element ageEle = student.element("age");
    String age = ageEle.getText();

    Element scoreEle = student.element("score");
    String score = scoreEle.getText();

    System.out.println("name: "+name+",age: " +age+", score: "+score);

    }else {
    for(Element student : students) {
    Element nameEle = student.element("name");
    String name = nameEle.getText();

    Element ageEle = student.element("age");
    String age = ageEle.getText();

    Element scoreEle = student.element("score");
    String score = scoreEle.getText();
    System.out.println("name: "+name+",age: " +age+", score: "+score);
    }
    }
    }
    } catch (DocumentException e) {
    e.printStackTrace();
    }
    }
    }
      

  2.   

    http://developer.51cto.com/art/200903/117512.htm
      

  3.   

    DOM4J 给个例子你DOM4J简介 DOM4J是dom4j.org出品的一个开源XML解析包,DOM4J最大的特色是使用大量的接口,这也是它被认为比JDOM灵活的主要原因。
    它的主要接口都在org.dom4j这个包里定义:
     Attribute  定义了XML属性 
     Branch  Branch为能够包含子节点的节点如XML元素(Element)和文档(Docuemnts)定义了一个公共的行为 
     CDATA  定义了XML CDATA 区域 
     CharacterData  CharacterData是一个标识借口,标识基于字符的节点。如CDATA,Comment, Text. 
     Comment  Comment 定义了XML注释的行为 
     Document  定义了XML文档 
     DocumentType  DocumentType 定义XML DOCTYPE声明 
     Element  Element定义XML 元素 
     ElementHandler  ElementHandler定义了 Element 对象的处理器 
     ElementPath  被 ElementHandler 使用,用于取得当前正在处理的路径层次信息 
     Entity  Entity定义 XML entity 
     Node  Node为所有的dom4j中XML节点定义了多态行为 
     NodeFilter  NodeFilter 定义了在dom4j节点中产生的一个滤镜或谓词的行为(predicate) 
     ProcessingInstruction  ProcessingInstruction 定义 XML 处理指令. 
     Text  Text 定义XML 文本节点. 
     Visitor  Visitor 用于实现Visitor模式. 
     XPath  XPath 在分析一个字符串后会提供一个XPath 表达式 使用示例:1.创建XML文档
    首先必须先创建一个document对象来表示整个xml文档
    /** 建立document对象 */
      Document document = DocumentHelper.createDocument();
    为document对象增加直接节点(根节点)
    /** 建立XML文档的根books */
      Element booksElement = document.addElement("books");
    这里说明在xml文档里添加注释的方法,哪个标签调用添加注释的方法,注释就添加在哪个标签内
    /** 加入一行注释 */
      booksElement.addComment("This is a test for dom4j, holen, 2004.9.11");
    在根节点下再增加一个子节点,不是用文档对象调用方法,而是用根节点来调用方法
    /** 加入第一个book节点 */
      Element bookElement = booksElement.addElement("book");
    为这个新增加的节点加入一个属性
    /** 加入show属性内容 */
      bookElement.addAttribute("show", "yes");
    再在book标签下增加一个子节点title
    /** 加入title节点 */
      Element titleElement = bookElement.addElement("title");
    在title节点内设置文本
    /** 为title设置内容 */
      titleElement.setText("Dom4j Tutorials");
    写好了一个基本的xml文档,我们将其内容写入一个文件,用filename指定一个文件路径
    /** 将document中的内容写入文件中 */
       XMLWriter writer = new XMLWriter(new FileWriter(new File(filename)));
       writer.write(document);
       writer.close();
    这里就基本完成了一个xml文件的创建。2.读取xml文件
    首先要用一个dom4j中专门用于读取xml文件的类来读取文件
    SAXReader saxReader = new SAXReader();
    把xml文件读取到我们新创建的document对象里去
    Document document = saxReader.read(filename);
    现在我们可以来读取这个xml文档中的内容,假如我要读取某个a标签的内容,用一个list来获取所有的a标签
    List list = document.selectNodes("/a");
    再用一个迭代器来获取这个list的所有成员
    Iterator iter = list.iterator();
    这样我们可以逐一获取所有的a标签,并读取它的内容,现假设我们要迭代读取a标签下的b标签的文本属性
    while (iter.hasNext()) {
        Element bookElement = (Element) iter.next();
        Iterator iterator   = bookElement.elementIterator("b");
        while (iterator.hasNext()) {
         Element titleElement = (Element) iterator.next();
         System.out.println(titleElement.getText());
        }
       }
    到这里我们已经可以基本完成一个读取xml文件的功能。3.修改xml文件
    修改xml文件首先要读取xml文件
    SAXReader saxReader = new SAXReader();
       Document document = saxReader.read(new File(filename));
       /** 修改内容之一: 如果book节点中show属性的内容为yes,则修改成no */
    List list = document.selectNodes("/books/book/@show");//属性前要加@
       Iterator iter = list.iterator();
       while (iter.hasNext()) {
        Attribute attribute = (Attribute) iter.next();
        if (attribute.getValue().equals("yes")) {
         attribute.setValue("no");
        }
       }
    /**
        * 修改内容之二: 把owner项内容改为Tshinghua
        * 并在owner节点中加入date节点,date节点的内容为2004-09-11,还为date节点添加一个属性type
        */
       list = document.selectNodes("/books/owner");
       iter = list.iterator();
       if (iter.hasNext()) {
        Element ownerElement = (Element) iter.next();
        ownerElement.setText("Tshinghua");
        Element dateElement = ownerElement.addElement("date");
        dateElement.setText("2004-09-11");
        dateElement.addAttribute("type", "Gregorian calendar");
       }
    /** 修改内容之三: 若title内容为Dom4j Tutorials,则删除该节点 */
       list = document.selectNodes("/books/book");
       iter = list.iterator();
       while (iter.hasNext()) {
        Element bookElement = (Element) iter.next();
        Iterator iterator = bookElement.elementIterator("title");
        while (iterator.hasNext()) {
         Element titleElement = (Element) iterator.next();
         if (titleElement.getText().equals("Dom4j Tutorials")) {
          bookElement.remove(titleElement);
         }
        }
       }
    修改完毕后,同创建xml文件一样,将xml文档写入文件
    /** 将document中的内容写入文件中 */
        XMLWriter writer = new XMLWriter(new FileWriter(new File(
          newfilename)));
        writer.write(document);
        writer.close();
    这里我们就完成了基本的xml文件修改。
    如果要在某标签下删除某个子标签
    bookElement.remove(titleElement);
      

  4.   

    http://blog.csdn.net/cuiweibing/archive/2007/08/14/1743235.aspx