因为需要在android手机上面解析xml,而现有的xml库大多都比较大,而且我需要的功能也比较少,所以就自己实现了一个。同时也熟悉了一下注解的运用,这个工具就只有两个功能:
1.将javabean转换成String类型的对象以便网络传输
2.将String类型对象转换成javabean以便操作方便
所有代码只有4个类,代码我就不贴了,发一下测试代码,想研究的可以下载来看看
package test;
import java.util.ArrayList;
import cn.infogiga.util.xml.XMLBean;
import cn.infogiga.util.xml.XMLElement;
import cn.infogiga.util.xml.XMLField;
import cn.infogiga.util.xml.XMLTypes;
/**
* value表示这个节点名称 type=XMLTypes.XML_ROOT表示这是根节点
* 如果不是根节点 输出的xml没有xml头:<?xml version='1.0' encoding='UTF-8'?>
* @author cindy
*/
@XMLElement(value="BeanA",type=XMLTypes.XML_ROOT)
public class BeanA extends XMLBean{
/**
* value表示节点名称,XMLTypes.XML_ELEMENT表示这是普通节点
*/
@XMLField(value="Field1",xmlType=XMLTypes.XML_ELEMENT)
private String flied1;
@XMLField(value="Field2",xmlType=XMLTypes.XML_ELEMENT)
private String fleld2;
@XMLField(value="Field3",xmlType=XMLTypes.XML_ELEMENT)
private String field3;
/**
* xmlType=XMLTypes.XML_LIST表示这是多个重复节点,这里一定要是ArrayList 如果是List则会报错
* 如果xmlType=XMLTypes.XML_LIST 那么mClass=BeanB.class 这个一定要添加,初始化是需要用到,没有什么意义
* 如果value="beanBs"省略则输出的xml将会有变化:
* 有value="beanBs"输出的字符串:
* <?xml version='1.0' encoding='UTF-8'?>
<BeanA>
<Field1>111111</Field1>
<Field2>222222</Field2>
<beanBs>
<BeanB>
<Field1>b33333</Field1>
</BeanB>
<BeanB>
<Field1>b44444</Field1>
</BeanB>
</beanBs>
</BeanA>
* 没有value="beanBs"输出的字符串:
<?xml version='1.0' encoding='UTF-8'?>
<BeanA>
<Field1>111111</Field1>
<Field2>222222</Field2>
<Field3>333333</Field3>
<BeanB>
<str2>b33333</str2>
</BeanB>
<BeanB>
<str2>b44444</str2>
</BeanB>
</BeanA>
*/
@XMLField(value="beanBs",xmlType=XMLTypes.XML_LIST,mClass=BeanB.class)
private ArrayList<BeanB> beanBs;
public ArrayList<BeanB> getBeanBs() {
return beanBs;
}
public void setBeanBs(ArrayList<BeanB> beanBs) {
this.beanBs = beanBs;
}
public String getFlied1() {
return flied1;
}
public void setFlied1(String flied1) {
this.flied1 = flied1;
}
public String getFleld2() {
return fleld2;
}
public void setFleld2(String fleld2) {
this.fleld2 = fleld2;
}
public String getField3() {
return field3;
}
public void setField3(String field3) {
this.field3 = field3;
}
}
package test;
import cn.infogiga.util.xml.XMLBean;
import cn.infogiga.util.xml.XMLElement;
import cn.infogiga.util.xml.XMLField;
import cn.infogiga.util.xml.XMLTypes;
@XMLElement(value="BeanB",type=XMLTypes.XML_UNROOT)
public class BeanB extends XMLBean{
@XMLField(value="str2",xmlType=XMLTypes.XML_ELEMENT)
private String str2;
public String getStr2() {
return str2;
}
public void setStr2(String str2) {
this.str2 = str2;
}
}
package test;
import java.util.ArrayList;
import java.util.List;
public class TestMain2 {
/**
* @param args
*/
public static void main(String[] args) {
BeanA ba = new BeanA();
ba.setFlied1("111111");
ba.setFleld2("222222");
ba.setField3("333333");
ArrayList<BeanB> bList = new ArrayList<BeanB>();
BeanB b = new BeanB();
b.setStr2("b33333");
bList.add(b);
BeanB c = new BeanB();
c.setStr2("b44444");
bList.add(c);
ba.setBeanBs(bList);
System.out.println(ba.toString());
}
}
package test;
import java.util.ArrayList;
public class TestMain3 {
/**
* @param args
*/
public static void main(String[] args) {
/*// TODO Auto-generated method stub
BeanA beanA = new BeanA();
beanA.getBeanBs().getClass();*/
String xml = "<?xml version='1.0' encoding='UTF-8'?><BeanA><Field1>111111</Field1><Field2>222222</Field2><Field3>333333</Field3><beanBs><BeanB><str2>b33333</str2></BeanB><BeanB><str2>b44444</str2></BeanB></beanBs></BeanA>";
BeanA beanA = new BeanA();
try {
beanA.parse(xml);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(beanA.getFlied1());
System.out.println(beanA.getFleld2());
System.out.println(beanA.getField3());
ArrayList<BeanB> l = beanA.getBeanBs();
if(l != null){
for(int i=0;i<l.size();i++){
BeanB b = l.get(i);
System.out.println(b.getStr2());
}
}
}
}
添加了点简单的注释
分享到:
相关推荐
java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析...
andxml汉化版是一个xml文件反编译工具,可与APKTOOL反编译配合使用,APK文件使用APKTool反编译生成XML文件后,就可以直接通过它进行汉化编辑 注意: 1、一键机器翻译会造成某些代码出现翻译错误现象,请人工识别。...
这个小型的XML解析工具包是为开发者提供的一种轻量级解决方案,旨在帮助理解和处理XML文档。下面我们将深入探讨XML解析的基本概念、XML文档结构以及这个小型工具包可能包含的关键组件。 首先,XML解析器是处理XML...
《Excel到XML转换小工具详解》 在信息技术领域,数据交换和存储的格式多样,XML(eXtensible Markup Language)作为一种结构化数据格式,常用于数据交换和存储,尤其在编程和API交互中占据重要地位。然而,对于非...
HTTPXML测试工具是一款专为开发者设计的高效便捷的软件,主要功能是用于测试基于HTTP协议并且涉及XML数据交互的应用程序或服务。它简化了HTTP请求的构造和发送过程,同时也支持解析和验证响应中的XML数据,这对于...
这个小工具是用C#编程语言编写的,提供了一种方便的方法将HTML文档转换为结构化的XML格式。C#,作为微软.NET框架的一部分,拥有强大的XML处理能力,使得开发这样的工具变得相对简单。 在HTML与XML之间进行转换的...
标题中的“txt数据转换为xml数据的小工具”指的是一个实用程序,它的主要功能是将文本文件(.txt)中的数据转换成结构化的XML(可扩展标记语言)文件。这种转换对于那些需要处理结构化数据,特别是在编程环境中工作...
这个名为“检验xml文件有效性的小工具”的程序,就是为了解决这个问题而设计的,它允许用户在不懂Java编程的情况下也能验证XML文件的语法正确性。 该工具的核心是用Java语言编写的,这意味着它可以跨平台运行,只要...
1. **节点明细**:工具将XML文档的元素结构分解为可读的节点层级,每个节点都清晰地标记出其类型(元素、属性、文本等)和内容,便于用户快速理解。 2. **搜索功能**:内置的搜索工具允许用户快速查找文档中的特定...
总之,XMLSpy作为一款强大的XML工具,不仅能满足基本的编辑需求,还能应对复杂的XML处理任务,是XML开发者和IT专业人员的重要辅助工具。通过使用XMLSpy,可以显著提升工作效率,保证XML数据的质量和一致性。
这个“xml文档生成小工具”是专为简化XML文档创建而设计的,它提供了源码,不仅可以直接运行,还可以作为学习XML生成技术的参考。 XML的基本结构包括元素(Element)、属性(Attribute)、文本内容(Text Content)...
在网上找到了一个工具,可以完美地解密xml文件,但这个工具的使用方法是:调cmd 然后AndroidManifestConver.exe c:\src.xml c:\dest.xml(前者是原文,后者是解密后的文件)。如果需要解密的xml文件较多,这个办法...
"xsd生成xml工具"是一个实用程序,它允许开发者根据XSD文件创建符合该模式的示例XML文档。这个工具的亮点在于它提供了完整的源代码,这意味着用户不仅可以使用工具,还可以深入理解其工作原理,甚至进行自定义扩展。...
"XML文件解析编辑小工具",如firstobject xml editor 2.4,是一款专为XML文档设计的轻量级编辑器,提供了对XML文件的深度解析和编辑功能。 这款工具的特色在于其绿色小巧的特性,意味着它无需安装即可使用,占用...
“xmlxml压缩工具”可能是指一个专门针对XML文件进行压缩处理的软件或库。这种工具的主要功能可能是减小XML文件的大小,提高存储效率和网络传输速度。XML文件由于其结构特性,往往比文本文件大,特别是在包含大量...
Beckhoff的SSC 5.12版本提供了一个XML生成工具,这个工具用于帮助开发者创建和管理EtherCAT从站设备的配置文件。XML文件在自动化工程中起着关键作用,因为它们能够以结构化的方式存储和传递设备配置信息。通过此工具...
标题中的“绿色小巧”,意味着这款XML查看编辑工具具有体积小、占用资源少的特点,这样的设计使其能够在各种计算机环境中快速启动并运行,而不会对系统性能造成太大影响。同时,“绿色”也暗示这可能是一个免安装...
总之,XMLSpy2010作为一个强大的XML开发工具,无论对于初学者还是经验丰富的开发者,都是一个不可或缺的工具,它简化了XML的处理流程,提升了开发效率。通过深入学习和使用XMLSpy,开发者能够更好地理解和应用XML...
xml配置工具xml配置工具xml配置工具xml配置工具xml配置工具xml配置工具xml配置工具xml配置工具
Windows平台提供了多种XML解析工具,这些工具帮助开发者快速、高效地解析和查看XML文档,确保数据的准确性和完整性。本文将详细介绍Windows平台下的一款XML解析工具——foxe_CHS.exe,它是专为中文用户设计的版本。 ...