从XML元素结构到JAVA实现

xml

前几个月,做项目时整理过一些XML操作的程序。这里根据自己的编程习惯再做一下整理。XML操作最基本的是SAX,DOM了。但这里不是谈SAX,DOM怎么使用。而是从XML元素的角度谈其java的实现。XML是由多个元素组成,可以分成XMLElement、XMLSimpleElement、XMLComplexElement、XMLCollection、XMLCollectionElement等几种基本类型,从类名你基本就可以判断出该类所描述的XML对象了。

下面以一个例子来做描述:

<?xml version="1.0" encoding="GB2312"?>

<Package name = "abc">

    <File name = "file">

        <Sheet  name = "sheet">

           <Styles>

               <style id = "0" name = "a">

                   <align>2</align>

                   <borders>

                      <border id = "0" type = "left" value = "1" />

                      <border id = "1" type = "right" value = "3" />

                   </borders>

                  <font name = "宋体" color = "3" height = "20" />

               </style>

           </Styles>

           <Columns>

               <Column id = "0"  columnid = "0" width = "10" />

           </Columns>

           <Regions>

               <Region id = "0" rowid = "1" columnform = "0" columnto = "3" />

           </Regions>

           <Cells>

               <cell  id = "1" row="0" column = "0" style = "a"  value ="测试"/>

               <cell  id = "2" row="2" column = "2" value =" 测试2" />

               </Cells>

        </Sheet>

    </File>

</Package>

 

该配置文件是个XML—>EXCEL的XML文件,描述了EXCEL中的一些对象,比如文件名,字体,行,列等。其中Package是一个XMLComplexElement(混合类型),Cells(单元格集)是个XMLCollection(容器类),cell (单元格)是XMLCollectionElement(容器中的元素)<cell  id = "1" row="0" column = "0" style = "a"  value ="测试"/>

中的id 就是XMLAttribute(属性)。所有的XML文件都是由这些基本的元素组成。定义出最基本的XML元素后,那么在程式中怎么也把它们之间的关系定义出来呢?以cell元素为例子代码如下:

public class Cell extends XMLCollectionElement {

       private XMLAttribute attrRow=new XMLAttribute("row");

       private XMLAttribute attrStyle=new XMLAttribute("style");

       private XMLAttribute attrColumn=new XMLAttribute("column");

       private XMLAttribute attrValue=new XMLAttribute("value");

       private XMLInterface xmlInterface = null ;

      

    public Cell (Cells ass) {

             super(ass);

             fillStructure();

       }

       protected void fillStructure() {

                 super.fillStructure();

              attrId.setReadOnly(true);

                 isRequired=true;

                 complexStructure.add(attrStyle);

                 complexStructure.add(attrRow);

                 complexStructure.add(attrColumn);

                 complexStructure.add(attrValue);

       }

}

 

源代码下载 http://www.51sports.org/xml.rar

时间: 2024-08-08 00:29:18

从XML元素结构到JAVA实现的相关文章

PHP解析XML 元素结构范例

该范例用缩进格式显示一个文档中起始元素的结构. 显示 XML 元素结构 <?php$file = "data.xml";$depth = array(); function startElement($parser, $name, $attrs) {   global $depth;   for ($i = 0; $i < $depth[$parser]; $i++) {       print "  ";   }   print "$name

用递归获取XML元素

看到的一道题,用递归获取XML元素.... static void Main(string[] args) { string xmlContent = @"<FileSystem> <DriverC> <Dir DirName='MSDOS622'> <File FileName ='Command.com' ></File> </Dir> <File FileName ='MSDOS.SYS' ></Fi

XML入门教程:认识学习 XML 元素

xml|教程|入门教程 XML元素是可扩展的,它们之间是存在着某些关系. XML元素须遵守一些简单的命名规则. XML元素是可扩展的 XML元素是可被扩展,来携带更多的信息. 请看下面这个XML标签例子: <note><to>Tove</to><from>Jani</from><body>Don't forget me this weekend!</body></note> 让我们设想一下,我们创建了一个应用程

XML指南——XML元素

xml    XML元素是可以扩展的,它们之间有关联. XML元素有简单的命名规则. XML元素是可以扩展的 XML文档可以被扩展一边携带更多的信息. 请看下面的XML便条例子: <note> <to>Lin</to> <from>Ordm</from> <body>Don't forget me this weekend!</body> </note> 让我们来设想一个能够读取此XML文档的并能解读其中XML

亲密接触XML(5)---XML元素

xml   <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />        XML元素   XML元素是可扩展的,彼此之间有关联. XML元素的命名规则很简单.       XML元素是可扩展的       XML文档可以进行扩展以携带更多的信息. 请看下面的XML NOTE 例子:       < note>    < to>Tove< /

XML开发入门基础:XML元素

XML文档包含XML元素. 什么是XML元素? XML元素指的是从(且包括)开始标签直到(且包括)结束标签的部分. 元素可包含其他元素.文本或者两者的混合物.元素也可以拥有属性. <bookstore> <book category="CHILDREN"> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</y

深入理解JVM内幕:从基本结构到Java 7新特性

转自:http://www.csdn.net/article/2012-12-05/2812509-Java-JVM CSDN首页>软件研发 深入理解JVM内幕:从基本结构到Java 7新特性 发表于2012-12-05 09:02|6064次阅读| 来源ImportNew|38 条评论| 作者 朱伟杰 JavaJVM编程语言 摘要:许多没有深入理解JVM的开发者也开发出了很多非常好的应用和类库.不过,如果你更加理解JVM的话,你就会更加理解Java,这样你会有助于你处理类似于我们前面的案例中的

Qt之解析XML元素(QXmlStreamReader)

简述 对于 XML 的内容,通常情况下,我们只关心 XML 元素的解析.这时,可以通过 QXmlStreamReader 中的便利函数 readNextStartElement() 来实现. 简述 详细介绍 使用 更多参考 详细介绍 之前使用的方式主要使用 readNext() 来读取下一个标记,并返回对应的类型. QXmlStreamReader xml; ... while (!xml.atEnd()) { xml.readNext(); ... // 做处理 } if (xml.hasEr

XML document processing in Java using XPath and XSLT

XML document processing in Java using XPath and XSLT More like this XSL gives your XML some style Easy Java/XML integration with JDOM, Part 2 Easy Java/XML integration with JDOM, Part 1 Discover how XPath and XSLT can significantly reduce the complex