选择显示字体大小

jox(关于java处理xml文档的讨论)

我不喜欢灌水的人。。。。。。
给大家点有关jox方面的。。。。^_^刚学习的哦。。请多包含哦
jox是一套用户xml document.和java beans之间进行数据传递的java类库。
一个简单直接的jox实例:
jox是非常的简单易用。假设你现在已经有了下面的java bean。
package com.wutka.jox.test;
import com.wutka.jox.*;
import java.util.*;
public class testbean implements java.io.serializable
{
    protected int foo;
    protected string bar;
    protected java.util.date baz;
    protected vector thingies;
    protected testsubbean subbean;
    public testbean()
    {
        bar = "";
        baz = new date();
        thingies = new vector();
    }

    public int getfoo() { return foo; }
    public void setfoo(int afoo) { foo = afoo; }

    public string getbar() { return bar; }
    public void setbar(string abar) { bar = abar; }

    public java.util.date getbaz() { return baz; }
    public void setbaz(java.util.date abaz) { baz = abaz; }

    public testsubbean getsub() { return subbean; }
    public void setsub(testsubbean asub) { subbean = asub; }

    public string[] getthingies()
    {
        string[] retthingies = new string[thingies.size()];
        if (thingies.size() > 0) thingies.copyinto(retthingies);

        return retthingies;
    }

    public void setthingies(string[] newthingies)
    {
        thingies = new vector(newthingies.length);
        for (int i=0; i < newthingies.length; i++)
        {
            thingies.addelement(newthingies[i]);
        }
    }

    public string getthingies(int i)
    {
        return (string) thingies.elementat(i);
    }

    public void setthingies(int i, string thingy)
    {
        thingies.setelementat(thingy, i);
    }

    public string tostring()
    {
        stringbuffer ret = new stringbuffer(
            &quot;foo=&quot;+foo+&quot;;bar=&quot;+bar+&quot;;baz=&quot;+baz.tostring()+
            &quot;;thingies=&quot;);
        for (int i=0; i < thingies.size(); i++)
        {
            if (i > 0) ret.append(&quot;,&quot;);
            ret.append((string) thingies.elementat(i));
        }

        ret.append(&quot;;sub=&quot;);
        ret.append(subbean.tostring());

        return ret.tostring();
    }
}


并且你已创建了下面的 xml 文件:

<?xml version=&quot;1.0&quot;?>
<marktest>
<thingies>moe</thingies>
<thingies>larry</thingies>
<thingies>curly</thingies>
<thingies>shemp</thingies>
<thingies>curly joe</thingies>
<foo>5</foo>
<baz>6/25/00 12:46 am</baz>
<bar>this is the bar value</bar>
<sub>
<age>35</age>
<name>mark</name>
</sub>
</marktest>

下面的程序将读出xml并把数据存储于testbean:
package com.wutka.jox.test;

import com.wutka.jox.*;
import java.io.*;

public class testdeser
{
    public static void main(string[] args)
    {
        try
        {
            fileinputstream in = new fileinputstream(&quot;bean.xml&quot;);

            joxbeaninputstream joxin = new joxbeaninputstream(in);

            testbean testbean = (testbean) joxin.readobject(
                testbean.class);

            system.out.println(testbean);
        }
        catch (exception exc)
        {
            exc.printstacktrace();
        }
    }
}

你现在能作的就是创建fileinputstream或者filereader去读取xml文件,并且把它打包进joxbeaninputstream或者joxbeanreader。接着你就可以让jox读这个对象和该对象的类。
写一个输出xml文件的bean就这么简单啦^_^:
package com.wutka.jox.test;

import com.wutka.jox.*;
import java.io.*;

public class testser
{
    public static void main(string[] args)
    {
        try
        {
            testbean b = new testbean();
            b.setfoo(5);
            b.setbar(&quot;this is the bar value&quot;);
            b.setthingies(new string[] {
                &quot;moe&quot;, &quot;larry&quot;, &quot;curly&quot;, &quot;shemp&quot;, &quot;curly joe&quot; });
            testsubbean sub = new testsubbean();
            sub.setname(&quot;mark&quot;);
            sub.setage(35);
            b.setsub(sub);

            fileoutputstream fileout = new fileoutputstream(&quot;bean.xml&quot;);
            joxbeanoutputstream joxout = new joxbeanoutputstream(fileout);

            joxout.writeobject(&quot;marktest&quot;, b);

            joxout.close();
        }
        catch (exception exc)
        {
            exc.printstacktrace();
        }
    }
}

你必须在这个java bean中设置一些值,创建一个用于写xml文件的输出流,用joxbeanoutputstream或者joxbeanwriter规定这个输出流,并写相应的对象。以后,你就不必重复做这些工作啦^_^。只要你有了dtd,jox就可以根据这个dtd识别根标签了。
为了后面的例子,我假定你已经创建了下面的dtd文件了:

<?xml version=&quot;1.0&quot; encoding=&quot;iso-8859-1&quot;?>

<!element marktest (thingies*, foo?, bar?, baz? s-u-b?)>

<!element thingies #pcdata>
<!element foo #pcdata>
<!element bar #pcdata>
<!element baz #pcdata>
<!element s-u-b (age)>
<!element age #pcdata>
<!attlist s-u-b name cdata &quot;&quot;>


下面的程序可以读取dtd文件并且传递给jox,使jox可以规范输出啦^_^:
package com.wutka.jox.test;
import com.wutka.jox.*;
import com.wutka.jox.dtd.*;
import java.io.*;

public class testserdtd
{
    public static void main(string[] args)
    {
        try
        {
            testbean b = new testbean();
            b.setfoo(5);
            b.setbar(&quot;this is the bar value&quot;);
            b.setthingies(new string[] {
                &quot;moe&quot;, &quot;larry&quot;, &quot;curly&quot;, &quot;shemp&quot;, &quot;curly joe&quot; });
            testsubbean sub = new testsubbean();
            sub.setname(&quot;mark&quot;);
            sub.setage(35);
            b.setsub(sub);

            fileoutputstream fileout = new fileoutputstream(&quot;bean.xml&quot;);

            filereader reader = new filereader(&quot;testbean.dtd&quot;);
            parser dtdparser = new parser();

            dtd dtd = dtdparser.parse(reader);
            reader.close();

            joxbeanoutputstream joxout = new joxbeanoutputstream(dtd, fileout);

            joxout.writeobject(&quot;marktest&quot;, b);

            joxout.close();
        }
        catch (exception exc)
        {
            exc.printstacktrace();
        }
    }
}


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons