<?xml version="1.0" encoding="GBK"?> 
<test a="a" b="b" > 
<temp a="4" 
b="18" 
c="0" 
d="j2ee" 
e ="" 
f ="" 
g ="" 
h="java" 
i="java解析xml" 
j="" 
k="java解析xml" 
l= "" 
m=""> 
<file id= "7" n= "" x="0" y="4" z="0"></file> 
</temp> 
<temp a="12" 
b="43" 
c="1" 
d="C#" 
e ="" 
f ="" 
g ="" 
h=".net" 
i="java解析xml" 
j="" 
k="java解析xml" 
l= "" 
m=""> 
<file id= "54" n= "" x="0" y="48" z="12"></file> 
</temp> 
</test> 我想获取父节点test中 a的属性值,b的属性值. 
子节点temp中a的属性值,b的属性值,file节点中的 id值,z的值. 
请问该如何实现.谢谢

解决方案 »

  1.   

    lz 用dom4j吧,看看他的api使用很方便的
      

  2.   

    你可以使用JDOM或DOM4J这样的第三方包。
      

  3.   

    XPATH也很快吖。
    import javax.xml.xpath.*;
    import javax.xml.parsers.*;
    import org.w3c.dom.*;
    import java.io.*;public class a {
        public static void main(String[] args) {
            try {
                XPathFactory fac = XPathFactory.newInstance();
                XPath pat = fac.newXPath();            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                DocumentBuilder builder = factory.newDocumentBuilder();            Document doc = builder.parse(new File("c:/a.xml"));            NodeList list = (NodeList) pat.evaluate("/test/@a|/test/@b", doc,
                        XPathConstants.NODESET);
                print(list, "test");            list = (NodeList) pat.evaluate("//temp/@a|//temp/@b", doc,
                                               XPathConstants.NODESET);
                print(list, "temp");            list = (NodeList) pat.evaluate("//file/@id|//file/@z", doc,
                                               XPathConstants.NODESET);
                print(list, "file");        } catch (Exception ex) {
                ex.printStackTrace();
            }
        }    public static void print(NodeList list, String ele) {
            System.out.println(ele + ":");
            for (int i = 0; i < list.getLength(); i++) {            System.out.println("\t" + list.item(i).getNodeName() + ":" +
                                   list.item(i).getNodeValue());
            }    }
    }
      

  4.   

    jdom比较简单的。而且对于这种少量数据的,效率也不错!
      

  5.   


    XPATH很强大,不过比jdom要多学习一点东西拉
      

  6.   

    这样简单的东西,建议楼主还是从JDK里面的DOM和SAX入手,打点基础知识,再用JDOM之类的东东,就学习而言来的要好!