zoukankan      html  css  js  c++  java
  • 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中。

  • 相关阅读:
    .NET Interop 工具集
    关于正弦波的算法
    Windows Phone 系列 本地数据存储
    Xaml cannot create an instance of “X”
    Windows Phone 系列 使用 MVVM绑定时无法获取当前值
    Windows Phone 系列 应用程序图标无法显示
    Windows Phone 系列 WPConnect无法上网的问题
    Windows Phone 系列 使用 Windows Phone 保存铃声任务
    WP7.5提交应用
    Windows Phone 系列 动态删除ObservableCollection
  • 原文地址:https://www.cnblogs.com/king1302217/p/2085271.html
Copyright © 2011-2022 走看看