解决方案 »

  1.   

    假如说:
    student.xml :    <student>
            <id>200192001</id>
            <name>张三</name>
            <age>18</age>
            <gender>男</gender>
            <email>[email protected]</email>
            <java>98</java>
        </student>代码:
    Map map = new HashMap();
    org.dom4j.io.SAXReader reader = new org.dom4j.io.SAXReader();
    reader.setValidation(false);
    org.dom4j.Document doc = reader.read(new FileInputStream(
    "student.xml"));
    org.dom4j.Element root = doc.getRootElement(); String defaultNamespace = root.getNamespaceURI();
    map.put("default", defaultNamespace);
    reader.getDocumentFactory().setXPathNamespaceURIs(map); // 带有命名空间的解析,DOM4J也支持默认命名空间
    org.dom4j.XPath path = doc
    .createXPath("/default:students/default:student");
    path.setNamespaceURIs(map);
    List list = path.selectNodes(doc); for (Iterator it = list.iterator(); it.hasNext();) {
    org.dom4j.Node stu = (org.dom4j.Node) it.next();
    // XPATH路径举例:child::default:id
    org.dom4j.XPath pathc = stu.createXPath("child::*");
    pathc.setNamespaceURIs(map);
    List child = pathc.selectNodes(stu); String id = "", name = "", email = "";
    int age = 0, java = 0;
    boolean gender = false;
    // 遍历student元素的子元素
    for (int i = 0; i < child.size(); i++) {
    org.dom4j.Element e1 = (org.dom4j.Element) child.get(i);
    String tname = e1.getName();
    String tvalue = e1.getText(); if (tname.equals("id")) {
    id = tvalue;
    } else if (tname.equals("name")) {
    name = tvalue;
    } else if (tname.equals("email")) {
    email = tvalue;
    } else if (tname.equals("gender")) {
    gender = tvalue.equals("男");
    } else if (tname.equals("age")) {
    age = Integer.parseInt(tvalue);
    } else if (tname.equals("java")) {
    java = Integer.parseInt(tvalue);
    }
    }
    Student s = new Student(id, name, email, java, age, gender);
    r.add(s);