免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5949 | 回复: 4
打印 上一主题 下一主题

XML概念和应用(一)如何生成xml [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-08-10 12:10 |只看该作者 |倒序浏览
XML概念和应用
     随着JAVA和XML的不断发展,二者事实上已经发展成为可移植的语言和可移植的数据实现者。所有关于XML一个最重要的概念是:标准的异质平台之间传输消息语言。它产生的消息(或者文档)可以通用于各种不同的平台、终端。当然,当系统接收一个XML文档后,可以又把它转换为需要的最终文档,最终文档可以是HTML、JSP或者其它形式的XML变化模式。
     从下图中可以领会一些关于XML的概念。

  
    上图中,各终端之间均以XML为传输数据的标准,随着XML这几年的发展,它已经成为各种终端之间通信的标准。
当然,XML所包含的东西绝不仅仅只有这些,下面我将在读者已经理解了XML的基本概念基础之上,深入地讨论一下以下三个关于XML的核心问题:
       一、        如何产生一个XML?
       二、        如何分析一个XML?为什么要分析?
       三、        如何将XML转换成其它元语言?
                     
                  如何生成XML?     
2.1.1  XML简单示例:
   一、直接书写XML文件
示例1:   e:/test.xml
<?xml version="1.0" encoding="GB2312" ?>;
<book>;
        <title>;理解XML</title>;
        <auother>;陌生人</auother>;
        <sale >;59.00</sale>;
</book>;
将该文件以.XML格式存放。
二、我们将示例一稍稍改进一些,得用JSP在生成XML文件。
示例2:      /testxml.jsp
<%@ page contentType="text/xml;charset=gb2312" %>;
<?xml version="1.0" encoding="GB2312" ?>;
<book>;
        <title>;理解XML</title>;
        <auother>;陌生人</auother>;
        <sale >;59.00</sale>;
</book>;
下图给出了示例2的jsp文件生成的XML:

导读: 1、<%@ page contentType="text/xml;charset=gb2312" %>;该语句指定了JSP页面显示为XML文件。当然我们习惯利用contentType="text/html;charset=gb2312"指定显示页面为HTML.这是二者之间的差别。
2、读者可以用IE直接打开示例1的XML文件,得到的结果和图2.1类似。
三、使用bean生成XML
好象我们又要更进一步了,使用BEAN来实现生成动态内容的JSP文件,当然作为本章的要点JSP文件的主要任务还是生成XML文件。它是对上一种方法进一步的拓展。
示例1: /WEB-INF/classes/bean/Item.java
package bean;
public class Item implements java.io.Serializable
{
        private String title=null,auother=null;
        private float price;
        public Item(String title,String auother,float price)
        {
                this.title=title;
                this.auother=auother;
                this.price=price;
        }
        public String gettitle()
        {
                return title;
        }
        public float getprice()
        {
                return price;
        }
        public String getauother()
        {
                return auother;
        }       
}

示例2  WEB-INF/classes/bean/ItemOption.java
package bean;
import java.util.Iterator;
import java.util.Vector;
public class ItemOption implements java.io.Serializable
{
        private Vector items=new Vector();
        public ItemOption()
        {
        }
        public Iterator getItems()
        {
                return items.iterator();
        }
        //增加cector中的对象
        public void addItem(String title,String auother,float price)
        {
                Object elements=new Item(title,auother,price);
                items.addElement(elements);       
        }
        //移除vector中的对象
        public void delItem()
        {
                items.removeAllElements();       
        }
}
导读:这两个bean的目的是提供为Vector容器增加对象、删除对象、访问容器对象的方法。值得注意的是利用迭代器Iterator机制来访问Vector的,利用迭代的好处在于:
1、        不必把容器的第一个无素(对象)当作一个特例来处理。
2、        使用迭代的方法,使得jsp页面内容更清晰明了。
当然这里使用的迭代器只是代向的,只能一个一个地检索对象。双向迭代器的用法请参考其它书籍的“列表迭代器”的用法。

示例3 /itemoption.jsp
<%@ page contentType="text/xml;charset=gb2312" %>;
<%@ page import="bean.*"%>;
<jsp:useBean id="ItemOption" scope="session" class="bean.ItemOption"/>;
<?xml version="1.0" encoding="GB2312" ?>;
<book>;
<%

        ItemOption.addItem("XML渐行渐进(一)","wwlongyong",(float)20.00);
        ItemOption.addItem("XML渐行渐进(二)","wwlongyong",(float)21.00);
        ItemOption.addItem("XML渐行渐进(三)","wwlongyong",(float)23.00);       
        java.util.Iterator Itvar=ItemOption.getItems() ;
        Item item=null;
%>;

        <%while(Itvar.hasNext())
        {
                item=(Item)Itvar.next();
        %>;
        <title>;<%=item.gettitle()%>;</title>;
        <auother>; <%=item.getauother()%>; </auother>;
        <sale>;<%=item.getprice()%>;</sale>;
        <%
        }
        ItemOption.delItem();
        %>;
</book>;
导读:从这个JSP文件看出,利用bean的作用可以动态生成jsp的文件内容,其核心其实只对xml文件的显示内容做了一个动态循环。就这么简单!下图给出了以上操作的结果:
   (由于上传图片数量的限制,这里无法给出图示结果。其效果可以参照上图)   

最后读者可以自行考虑一下在bean 中增加一个printXml的方法,让bean生成自身的xml.从代码的可重用性上来讲,这种方法更为可取。

testxml.gif (19.79 KB, 下载次数: 61)

图2.1 用JSP生成XML文件

图2.1      用JSP生成XML文件

ss.gif (1.77 KB, 下载次数: 57)

图1 xml理解示意

图1  xml理解示意

论坛徽章:
0
2 [报告]
发表于 2003-08-10 13:02 |只看该作者

XML概念和应用(一)如何生成xml

XML概念和应用(二)分析XML
    http://www.chinaunix.net/forum/viewtopic.php?t=137019

论坛徽章:
0
3 [报告]
发表于 2003-08-11 11:55 |只看该作者

XML概念和应用(一)如何生成xml

很好,继续

论坛徽章:
0
4 [报告]
发表于 2003-08-11 12:35 |只看该作者

XML概念和应用(一)如何生成xml

?????
语法不是很简单吗
把那语法说出来大家都知道做了

论坛徽章:
0
5 [报告]
发表于 2003-08-12 23:49 |只看该作者

XML概念和应用(一)如何生成xml

xml很有前途
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP