现在有这样一个XML文件不知道怎么处理 
<rcc version="1.02"> 
〈serverGroup name="default"> 
  <server hostname ="192.168.0.0" ip="192.168.0.0" port="1024"> 
</serverGroup> 
〈serverGroup name="servergroup1"> 
  <server hostname ="192.168.0.1" ip="192.168.0.1" port="1024"/> 
  <server hostname ="192.168.0.2" ip="192.168.0.2" port="1024"/> 
  <server hostname ="192.168.0.3" ip="192.168.0.3" port="1024"/> 
</serverGroup> 
〈serverGroup name="servergroup1"> 
  <server hostname ="192.168.0.4" ip="192.168.0.4" port="1024"/> 
  <server hostname ="192.168.0.5" ip="192.168.0.5" port="1024"/>  
</serverGroup> 
高手指点。 
  问题主要是出现在,组名的地方。 解析完根据不同的分组,添加到JTree里面 

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主截止到2008-06-18 22:09:37的汇总数据:
    发帖数:9
    结贴数:0
    结贴率: 0.00%
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   

    首先你的xml就有点问题,没有根节点,lz可以随便加一个,不影响xml的解析:具体如下:
    xml文件:
    <?xml version="1.0" encoding="UTF-8" ?>
    <list>
     <serverGroup name="default"> 
      <server hostname ="192.168.0.0" ip="192.168.0.0" port="1024"/> 
     </serverGroup> 
     <serverGroup name="servergroup1"> 
      <server hostname ="192.168.0.1" ip="192.168.0.1" port="1024"/> 
      <server hostname ="192.168.0.2" ip="192.168.0.2" port="1024"/> 
      <server hostname ="192.168.0.3" ip="192.168.0.3" port="1024"/> 
     </serverGroup> 
     <serverGroup name="servergroup1"> 
      <server hostname ="192.168.0.4" ip="192.168.0.4" port="1024"/> 
      <server hostname ="192.168.0.5" ip="192.168.0.5" port="1024"/>  
     </serverGroup>
    </list>解析此xml文件:
    package test1;import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.transform.TransformerException;import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import org.xml.sax.SAXException;import com.sun.org.apache.xpath.internal.XPathAPI;public class csdntest2 {
         public csdntest2(){  
          DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance();
          String serverGroupName = "";
          String hostname = "";
          String ip = "";
          String port = "";
          try {
                 DocumentBuilder dombuilder=domfac.newDocumentBuilder();
                 InputStream is=new FileInputStream("d:/test.xml");
                 Document doc = dombuilder.parse(is);
                 NodeList serverGroups = XPathAPI.selectNodeList(doc.getDocumentElement(), "/list/serverGroup");
                 if(serverGroups!=null){
                 for(int i=0;i<serverGroups.getLength();i++){
                     Node serverGroup=serverGroups.item(i);
                     NodeList server=XPathAPI.selectNodeList(serverGroup, "server");
                     serverGroupName=serverGroup.getAttributes().getNamedItem("name").getNodeValue();
                     for(int j = 0;j < server.getLength(); j++){
                      Node server1 = server.item(j);
                         hostname = server1.getAttributes().getNamedItem("hostname").getNodeValue();
                         ip = server1.getAttributes().getNamedItem("ip").getNodeValue();
                         port = server1.getAttributes().getNamedItem("port").getNodeValue();
                         System.out.println(serverGroupName+"|"+hostname+"|"+ip+"|"+port); 
                     }
       }
    }
               } catch (ParserConfigurationException e) {
                      e.printStackTrace();
               } catch (FileNotFoundException e) {
                      e.printStackTrace();
               } catch (SAXException e) {
                      e.printStackTrace();
               } catch (IOException e) {
                      e.printStackTrace();
               } catch (TransformerException e) {
               e.printStackTrace();
    }
        }
        public static void main(String[] args) {
               new csdntest2();
        }
     }
    运行结果:
    default|192.168.0.0|192.168.0.0|1024
    servergroup1|192.168.0.1|192.168.0.1|1024
    servergroup1|192.168.0.2|192.168.0.2|1024
    servergroup1|192.168.0.3|192.168.0.3|1024
    servergroup1|192.168.0.4|192.168.0.4|1024
    servergroup1|192.168.0.5|192.168.0.5|1024
      

  3.   

    剩下的任务lz自己完成吧,我不太懂JTree..
      

  4.   

    首先你的xml就有点问题,没有根节点,lz可以随便加一个,不影响xml的解析:具体如下主要是这个原因,没有root节点怎么行哦?难道你要自己解析??
    那就简单了,用正则表达式可以很快搞定。
      

  5.   

    嗬嗬,还是加个根节点正式,一想到正则就头大。扔给java去做呗
    顶一下3L