现在生成XML文件是这样显示的,乱的不行<?xml version="1.0" encoding="GB2312"?><地图编辑器配置文件 MapHeight="16" MapWidth="20" TitleHeight="16" TitleWidth="16" Title网格线="显示" 双图层="否" 图片索引="-1" 地图块网格线="显示" 地图网格线="显示" 差异色显示翻转="不是" 类型="0" 网格线="显示" 风格="0"/>
如何能弄成这种现实效果呢?
<?xml version="1.0" encoding="UTF-8"?> 
<java version="1.5.0_06" class="java.beans.XMLDecoder"> 
 <object class="javax.swing.tree.DefaultMutableTreeNode"> 
  <void property="userObject"> 
   <string>图片</string> 
  </void> 
  <void method="add"> 
   <object class="javax.swing.tree.DefaultMutableTreeNode"> 
    <void property="allowsChildren"> 
     <boolean>false</boolean> 
    </void> 
    <void property="userObject"> 
     <string>D:\Tools\Editor\0.png</string> 
    </void> 
   </object> 
  </void> 

解决方案 »

  1.   


         public void function_saveEditorData(String name)
          {
                if (name == null || name.length() <= 4)
                      return ;            try
                {
                      Document doc = null;
                      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                      DocumentBuilder builder = factory.newDocumentBuilder();
                      doc = builder.newDocument() ;
                      doc.normalizeDocument() ;
                      Element root = doc.createElement("地图编辑器配置文件");
                      doc.appendChild(root);                  //开始输出编辑器数据
                      //首先在根结点root上输出基本信息
                      root.setAttribute("类型",String.valueOf(MapDataManager.m_nMapType));
                      root.setAttribute("风格",String.valueOf(MapDataManager.m_nMapStyle));
                      root.setAttribute("类型",String.valueOf(MapDataManager.m_nMapType));
                      root.setAttribute("双图层",MapDataManager.m_fTwinMapLayer ? "是" : "否");
                      root.setAttribute("地图块网格线",MapDataManager.m_fShowMapFilesGrid ? "显示" : "不显示");
                      root.setAttribute("地图网格线",MapDataManager.m_fShowMapEditorGrid ? "显示" : "不显示");
                      root.setAttribute("Title网格线",MapDataManager.m_fShowTitleGrid ? "显示" : "不显示");
                      root.setAttribute("网格线",MapDataManager.m_fShowGrid ? "显示" : "不显示");
                      root.setAttribute("差异色显示翻转",MapDataManager.m_fPopoutFlip ? "是" : "不是");                  root.setAttribute("TitleWidth",String.valueOf(MapDataManager.m_nTitleWidth));
                      root.setAttribute("TitleHeight",String.valueOf(MapDataManager.m_nTitleHeight));
                      root.setAttribute("MapWidth",String.valueOf(MapDataManager.m_nTitleHor));
                      root.setAttribute("MapHeight",String.valueOf(MapDataManager.m_nTitleVer));
                      root.setAttribute("图片索引",String.valueOf(MapDataManager.m_nMapImageID));
                      //将文档输出为xml。必须使用到Data.XMLStore中的静态方法toXMLFile
                      boolean state = toXMLFile(doc,name,"GB2312");
                      if (state)
                      {
                            System.out.println("文件" + name + "成功保存!");
                      } 
                } catch (Exception ex)
                {
                      ex.printStackTrace();
                }
          }
          public static final boolean toXMLFile(Document doc, String fileName,String encoding)
          {
                if (doc == null || fileName == null)
                      return false ;            if (encoding == null)
                      encoding = "GB3212" ;     try
        {
      TransformerFactory tFactory = TransformerFactory.newInstance();
      Transformer transformer = tFactory.newTransformer();
      Properties properties = transformer.getOutputProperties();
      properties.setProperty(OutputKeys.ENCODING, encoding);
      properties.setProperty(OutputKeys.METHOD, "xml");
      transformer.setOutputProperties(properties);
      DOMSource source = new DOMSource(doc);
      File file = new File(fileName);
      StreamResult result = new StreamResult(file);
      transformer.transform(source, result);
                      return true ;
        } catch (TransformerConfigurationException ex)
        {
                      ex.printStackTrace();
        } catch (TransformerException ex)
        {
                      ex.printStackTrace();
        } catch (TransformerFactoryConfigurationError ex)
        {
                      ex.printStackTrace();
        }
                return false ;
          }