• JAVA开发:使用jdom管理xml


          1)首先建立个java project,XmlSample    

          2)将jdom.jar考到XmlSample工程中lib文件夹中

          3)在Eclipse中的XmlSample->JRE System Library 上右键,Build Path->Configure Build Path->Add External JARs,找到你刚刚考过来的jdom.jar,确定

          4)在XmlSample的Src目录中新建一个类,TestXML ,功能是:按照XML格式新建一个xml,并将xml文件转换成string类型。

           xml格式要求如下:

        

    xml格式
    <?xml version="1.0" encoding="UTF-8"?>
    <invoke type="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="invoke.xsd">
    <rootin type="com.crea.im.ws.GIS"/>
      
    <parameters>
        
    <property name="User">GISUser</property>
        
    <property name="Key">987654321</property>
        
    <property name="SyncSID">TB001</property>
      
    </parameters>
      
    <field name="dtl_Description" type="StringArray" >
         
    <value="成功!" />
         
    <value="空间信息格式错误,或者其他错误提示!" />
      
    </field>
    </invoke>

    TestXML 的代码如下: 

    TestXML
    import java.io.*;
    import org.jdom.*;
    import org.jdom.input.*;
    import org.jdom.output.*;

    public class TestXML 
    {
        
    public static void main(String[] args) 
        {
            
    try 
            {
            String aString 
    = BuildXMLDoc();
            System.out.println(aString);
            }
            
    catch (Exception e) 
            {
                System.out.println(e);
            }
        }
        
        
    private static String BuildXMLDoc() throws IOException,JDOMException 
        {
            
    //定义Element和Document
            Element invoke, rootin, parameters, property, field, E;
            Document Doc;
            
            
    //设置xml头
            Namespace ns_xsi = Namespace.getNamespace("xsi""http://www.w3.org/2001/XMLSchema-instance");
            Attribute  att 
    = new Attribute("noNamespaceSchemaLocation""invoke.xsd", ns_xsi);
            
            
    //设置根目录invoke
            invoke = new Element("invoke");
            invoke.addNamespaceDeclaration(ns_xsi); 
            invoke.setAttribute(att);
            Doc 
    = new Document(invoke);
            
            
    //设置一级目录rootin
            rootin = new Element("rootin");
            rootin.setAttribute(
    "type","com.crea.im.ws.GIS");  
            
    //将目录rootin包含到根目录invoke中
            invoke.addContent(rootin);
            
            
    //设置二级目录parameters
            parameters = new Element("parameters");   
            
    //将目录parameters包含到根目录invoke中
            invoke.addContent(parameters);
            
            
    //设置三级目录property(User)
            property = new Element("property");
            property.setAttribute(
    "name","User");
            property.setText(
    "GISUser");
            
    //将目录parameters包含到目录parameters
            parameters.addContent(property);
            
            
    //设置三级目录property(Key)
            property = new Element("property");
            property.setAttribute(
    "name","Key");
            property.setText(
    "987654321");
            
    //将目录parameters包含到目录parameters
            parameters.addContent(property);
            
            
    //设置三级目录property(SyncSID)
            property = new Element("property");
            property.setAttribute(
    "name","SyncSID");
            property.setText(
    "TB001");
            
    //将目录parameters包含到目录parameters
            parameters.addContent(property);
            
            
    //设置二级目录field
            field = new Element("field");
            field.setAttribute(
    "name","dtl_SingleProjectCode");
            field.setAttribute(
    "type","StringArray");
            
    //将目录field包含到根目录invoke中
            invoke.addContent(field);
            
             
    //设置三级目录E
             E= new Element("E");
             E.setAttribute(
    "value","成功");
             
    //将目录E包含到目录field
             field.addContent(E);
                
             
    //设置三级目录E
             E= new Element("E");
             E.setAttribute(
    "value","空间信息格式错误,或者其他错误提示!");
             
    //将目录E包含到目录field
             field.addContent(E);
             
           
            
    //将document输出成string格式
            XMLOutputter XMLOut = new XMLOutputter();
            Format format 
    = Format.getPrettyFormat(); // 格式化文档
            format.setEncoding("GBK"); // 由于默认的编码是utf-8,中文将显示为乱码,所以设为gbk
            XMLOut.setFormat(format);
            
            
    //将xml输出成string
            StringWriter out = new StringWriter();
            XMLOut.output(Doc, out); 
            String ImportState 
    =  out.toString();
            
            
    //将xml输出到本地的c:\\sys.xml中
            XMLOutputter XMLOut1 = new XMLOutputter();
            XMLOut.output(Doc, 
    new FileWriter("d:\\sys.xml")); 
            
            
    //返回xml字符串
            return ImportState;       
        }

    }

    在TestXML上右键,run as java application,控制台打印出xml的内容,同时也会将xml文件输出到d:\\sys.xml中。

  • 相关阅读:
    Row versus Set Processing, Surprise!(集合处理和单行处理数据的差异性)
    SVN导出增量包的方法
    Number of Digit One
    VPS+LNMP+WordPress搭建个人网站
    寻找最小的k个数(大顶堆方法)
    二叉搜索树转化为有序双向链表(C语言)
    LeetCode 345 Reverse Vowels of a String
    LeetCode 278 First Bad Version
    LeetCode 205 Isomorphic Strings
    LeetCode 88 Merge Sorted Array
  • 原文地址:https://www.cnblogs.com/king1302217/p/2085271.html
Copyright © 2020-2023  润新知