前提: 用SWT或JFace.根据XML生成如下的表格树:
http://publib.boulder.ibm.com/infocenter/adiehelp/v5r1m1/topic/com.ibm.etools.xsdeditor.doc/images/ncalxml.gif
请问有没有具体的例子?

解决方案 »

  1.   

    我给你看看怎么读取XML中的值的例子吧,具体要生成表格的代码就要自己去搞了
    package ch14;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    public class XmlDom {
     //立即加载模式
     public static void readStudentXml(){
      //构建文档解析器工厂
      DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
      try {
       //构建文档解析器
       DocumentBuilder builder=factory.newDocumentBuilder();
       //获取文档
       Document doc=builder.parse("src/ch14/Student.xml");
       //获取根元素
       Element root=doc.getDocumentElement();
       //获取根元素的子节点
       NodeList noList = root.getChildNodes();
       //遍历子节点
       for(int i=0;i<noList.getLength();i++){
        Node node = noList.item(i);
        /*
         * 注意
         * 如果不判断节点的类型,将会把"回车"输出为"#text"
         * */
        //判断节点类型是否为元素类型
        if(node.getNodeType()==Node.ELEMENT_NODE){
         System.out.println(node.getNodeName());//输出子结点
         NodeList nChile = node.getChildNodes();
         for(int j=0;j<nChile.getLength();j++){
          Node nc = nChile.item(j);
          if(nc.getNodeType()==Node.ELEMENT_NODE){
           //System.out.println();//输出子节点
           //System.out.println(nc.getFirstChild().getNodeValue());//输出子节点的值
           System.out.println(nc.getNodeName()+"-"+nc.getTextContent()+"-"+((Element)node).getAttribute("id"));//输出子节点的值
           /*
            * 获取属性((Element)node).getAttribute("id")
            * 先把有属性的节点node转换成Element元素,在根据Element的方法getAttribute获取
            * */
          }
         }
        }
       } 
      } catch (Exception e) {
       e.printStackTrace();
      }
     }
     
     //测试
     public static void main(String[] args) {
      readStudentXml();
     }
    }