这是我写的一个例子,你看一下吧:
xmlDemo.xml
************************
<?xml version="1.0" encoding="GB2312"?>
<ReportStyle>
<Report name="资产负债表">
<ItemName itemCode="0">
<value><![CDATA[资产负债表 itemNum0]]></value>
</ItemName>
<ItemName itemCode="1">
<value><![CDATA[资产负债表 itemNum1]]></value>
</ItemName>
<ItemName itemCode="2">
<value />
</ItemName>
</Report>
<Report name="现金流量表">
<ItemName itemCode="0">
<value />
</ItemName>
<ItemName itemCode="1">
<value />
</ItemName>
<ItemName itemCode="2">
<value />
</ItemName>
<ItemName itemCode="3">
<value><![CDATA[现金流量表 itemNum3]]></value>
</ItemName>
</Report>
<Report name="销售成本表">
<ItemName itemCode="0">
<value />
</ItemName>
<ItemName itemCode="1">
<value />
</ItemName>
<ItemName itemCode="2">
<value><![CDATA[销售成本表 itemNum2]]></value>
</ItemName>
<ItemName itemCode="3">
<value />
</ItemName>
<ItemName itemCode="4">
<value />
</ItemName>
</Report>
</ReportStyle>*****************************************
解释程序为:
package xmldemo.jdom;import java.util.List;
import java.util.Iterator;
import org.jdom.Element;
import org.jdom.Document;
import org.jdom.input.SAXBuilder;
import java.io.FileInputStream;
import java.util.Vector;
import org.apache.*;
/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: </p>
 * @author tangb
 * @version 1.0
 */public class ParseJdomXML {
    private static final String DEFAULT_SAX_DRIVER_CLASS =
            "org.apache.xerces.parsers.SAXParser";
    private static List docList;
    public ParseJdomXML() {    }
    public static Vector getReport(String xmlName) {
        Vector reportVector = new Vector();
        SAXBuilder builder = new SAXBuilder(DEFAULT_SAX_DRIVER_CLASS);
        try {            FileInputStream fis = new FileInputStream(xmlName);
            Document doc = builder.build(fis);
            Element rootEle = doc.getRootElement();
            docList = rootEle.getChildren("Report");
            //method 1
            for (int i = 0; i < docList.size(); i ++) {
                Element tempEle = (Element)docList.get(i);
                String reportName = tempEle.getAttributeValue("name");
                reportVector.add(tempEle.getAttribute("name"));
                System.out.println("reportName " + tempEle.getAttribute("name"));
            }
            //method 2
           /* Iterator reportItr = docList.iterator();
            while (reportItr.hasNext()) {
                Element tempEle = (Element) reportItr.next();
                String reportName = tempEle.getAttributeValue("name");
                reportVector.add(tempEle.getAttribute("name"));
                System.out.println("reportName " + tempEle.getAttribute("name"));
            }*/
            System.out.println("***********************************************");
        }
        catch (Exception ex) {
            ex.printStackTrace();
        }
        return reportVector;
    }
    public static Vector getItem(String reportName) {
        Vector itemVector = new Vector();
        //method 1
        for (int i = 0; i < docList.size(); i ++) {
            Element tempEle = (Element)docList.get(i);
            String str = tempEle.getAttributeValue("name");
            if (reportName.equals(str)) { //判断是否和传过来的名字相同
                List tempList = tempEle.getChildren();
                Iterator itemItr = tempList.iterator();
                while (itemItr.hasNext()) {//如果相同则找出所有这个名字的内容
                    Element itemEle = (Element) itemItr.next();
                    Element valueEle = itemEle.getChild("value");
                    String itemValue= "";
                    if (null != valueEle) {
                        itemValue = valueEle.getText();
                        System.out.println("itemValue " + itemValue);
                        itemVector.add(itemValue);
                    }                }
                System.out.println("***********************************************");
            }
        }
        //method 2
        /*Iterator reportItr = docList.iterator();
        while (reportItr.hasNext()) { //得到所有的名字
            Element tempEle = (Element) reportItr.next();
            String str = tempEle.getAttributeValue("name");
            if (reportName.equals(str)) { //判断是否和传过来的名字相同
                List tempList = tempEle.getChildren();
                Iterator itemItr = tempList.iterator();
                while (itemItr.hasNext()) {//如果相同则找出所有这个名字的内容
                    Element itemEle = (Element) itemItr.next();
                    Element valueEle = itemEle.getChild("value");
                    String itemValue= "";
                    if (null != valueEle) {
                        itemValue = valueEle.getText();
                        System.out.println("itemValue " + itemValue);
                        itemVector.add(itemValue);
                    }                }
                System.out.println("***********************************************");
            }        }*/
        return itemVector;
    }
    public static String getCode(String reportName, String value) {//根据值得到 itemCode
        Iterator reportItr = docList.iterator();
        while (reportItr.hasNext()) {
            Element tempEle = (Element) reportItr.next();
            String str = tempEle.getAttributeValue("name");
            if (reportName.equals(str)) {
                List tempList = tempEle.getChildren();
                Iterator itemItr = tempList.iterator();
                while (itemItr.hasNext()) {
                    Element itemEle = (Element) itemItr.next();
                    Element valueEle = itemEle.getChild("value");
                    if (null != valueEle) {
                        String itemName = valueEle.getText();
                        if (itemName.equals(value)) {
                            System.out.println("reportName = " + reportName + "|| " + " value = " + value + "|| " + "itemCode = "
                                    + itemEle.getAttributeValue("itemCode"));
                            return (String)itemEle.getAttributeValue("itemCode");
                        }
                    }                }
            }        }
        return null;
    }
    public static void main(String[] args) {
        try {
            ParseJdomXML.getReport("XML/xmlDemo.xml");            ParseJdomXML.getItem("现金流量表");
            ParseJdomXML.getCode("资产负债表", "资产负债表 itemNum1");
        }
        catch (Exception ex) {
            ex.printStackTrace();
        }    }
}********************************
好运!