哪位前辈能给一个详细点的代码

解决方案 »

  1.   

    把xml解析成二维数组
    调用JTable(Object[][] rowData, Object[] columnNames) 
      

  2.   

    这个 先用dom4j 解析,然后找到 jtable相应的构造方法 楼主 可以自己试试 。
      

  3.   

    先解析xml文件,把对应的数据放在list里,在放表table中.
      

  4.   

      package jaxml;
      
      import java.io.*;
      import org.w3c.dom.*;
      import javax.xml.parsers.*;
      import javax.xml.transform.*;
      import javax.xml.transform.dom.DOMSource;
      import javax.xml.transform.stream.StreamResult;
      import org.xml.sax.SAXException;
      
      /**
      * let's support linux
      * @author [email protected]
      */
      public class xmlfile{
      private Document document;
      private String filename;
      
      public xmlfile(String name) throws
      ParserConfigurationException{
      filename=name;
      DocumentBuilderFactory
      factory=DocumentBuilderFactory.newInstance();
      DocumentBuilder
      builder=factory.newDocumentBuilder();
      File file=new File(name);
      if(file.exists()){
      try {
      document=builder.parse(name);
      } catch (SAXException ex) {
      ex.printStackTrace();
      } catch (IOException ex) {
      ex.printStackTrace();
      }
      }else{
      document=builder.newDocument();
      toWrite("中文题目","中文内容");
      toSave();
      }
      }
      public void toWrite(String mytitle,String mycontent){
      Element root=document.createElement("WorkShop");
      document.appendChild(root);
      
      Element title=document.createElement("Title");
      
      title.appendChild(document.createTextNode(mytitle));
      root.appendChild(title);
      
      Element content=document.createElement("Content");
      
     
     content.appendChild(document.createTextNode(mycontent));
      root.appendChild(content);
      }
      public String readNode(String nodename){
      Node
      node=document.getElementsByTagName(nodename).item(0);
      return node.getTextContent();
      }
      public String readAttribute(String nodename,String
      itemname){
      Node
      node=document.getElementsByTagName(nodename).item(0);
      return
     
     node.getAttributes().getNamedItem(itemname).getTextContent();
      }
      public String parseString(String str,String
     nodename,String
      itemname){
      DocumentBuilderFactory
      factory=DocumentBuilderFactory.newInstance();
      DocumentBuilder dber;
      try {
      dber =
      factory.newDocumentBuilder();
      
      str="<xroot"+str+"</xroot";
      
      ByteArrayInputStream bais = null;
      try {
      
     
     bais = new ByteArrayInputStream(str.getBytes("UTF-8"));
      Document docf;
      try {
      docf =
      dber.parse(bais); 
      
      Node
      node=docf.getElementsByTagName(nodename).item(0);
      return
     
     node.getAttributes().getNamedItem(itemname).getTextContent();
      } catch (IOException ex)
      {
      
      ex.printStackTrace();
      } catch (SAXException
      ex) {
      
      ex.printStackTrace();
      }
      
      }
     
     catch (UnsupportedEncodingException uee) {
      uee.printStackTrace();
      }
      } catch (ParserConfigurationException ex) {
      ex.printStackTrace();
      }
      return "";
      }
      public void toSave(){
      try{
      TransformerFactory
      tf=TransformerFactory.newInstance();
      Transformer transformer=tf.newTransformer();
      DOMSource source=new DOMSource(document);
      
     
     transformer.setOutputProperty(OutputKeys.ENCODING,"GB2312");
      
     
     transformer.setOutputProperty(OutputKeys.INDENT,"yes");
      PrintWriter pw=new PrintWriter(new
      FileOutputStream(filename));
      StreamResult result=new StreamResult(pw);
      transformer.transform(source,result);
      } catch(TransformerException mye){
      mye.printStackTrace();
      } catch(IOException exp){
      exp.printStackTrace();
      }
      }
      }
      
      示例:
      xmlfile xf=new xmlfile("./9.xml");
      jval.setText(xf.parseString("<response
     code=\"000\"
      message=\"XXX\"/","response","code"));
      
      
     
     
     java写XML文件和读取XML文件 
     使用DOM方式,Java解析XML基本步骤:
     首先,我们需要建立一个解析器工厂。
     DocumentBuilderFactory
     dbf=DocumentBuilderFactory.newInstance();
     然后可以利用这个工厂来获得一个具体的解析对象。
     DocumentBuilder builder=dbf.newDocumentBuilder();
     DocumentBuilder的Parse()方法接受一个XML文档名作为输入参数,返回一个Document对象。Document对象代表了
     一个XML文档的树模型。
     Document doc=builder.parse("candiate.xml");
     使用Document对象的getElementsByTagName()方法,我们可以得到一个NodeList对象,他是XML文档中的标签元素
     列表,可以使用NodeList对象的item()方法来得列表中的每一个Node对象。
     NodeList nl=doc.getElementsByTagName("PERSON");
     Element node=(Element)nl.item(i);
     最后,我们会使用Node对象的getNodeValue()方法提取某个标签内的内容。
     node.getElementsByTagName("NAME").item(0).getFirstChild().getNodeValue()
     完整程序代码:
     import javax.xml.parsers.*;
     import org.w3c.dom.*;
     
     public class dom {
     public static void main(String args[]){
     String uri=args[0];
     try{
     DocumentBuilderFactory factory =
     DocumentBuilderFactory.newInstance();//建立一个解析器工厂。
     DocumentBuilder
     builder=factory.newDocumentBuilder();//获得一个具体的解析对象。
     Document
     doc=builder.parse(uri);//返回一个Document对象。
     System.out.println(doc.getImplementation());
     NodeList nl
     =doc.getElementsByTagName("PERSON");//得到一个NodeList对象。
     for (int i=0;i<nl.getLength();i++){
     Element node=(Element)
     nl.item(i);//得列表中的每一个Node对象。
     System.out.print("NAME: ");
     System.out.println
     (node.getElementsByTagName("NAME").item(0).getFirstChild().getNodeValue());
     System.out.print("ADDRESS: ");
     System.out.println
     (node.getElementsByTagName("ADDRESS").item(0).getFirstChild().getNodeValue());
     System.out.print("TEL: ");
     System.out.println
     (node.getElementsByTagName("TEL").item(0).getFirstChild().getNodeValue());
     System.out.print("FAX: ");
     System.out.println
     (node.getElementsByTagName("FAX").item(0).getFirstChild().getNodeValue());
     System.out.print("EMAIL: ");
     System.out.println
     (node.getElementsByTagName("EMAIL").item(0).getFirstChild().getNodeValue());
     System.out.println();
     }
     }catch(Exception e){
     e.printStackTrace();
     }
     }
     }自己下载jdom的jar包。
    程序把xml文件转换为dom结构放入内存,这时可以把dom结构循环遍历每个节点数值,并用对象或object[]保存,返回到页面遍历并放入jtable中