`
jape198654
  • 浏览: 1877 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

xml 解包

阅读更多
解析目标:test.xml
<?xml version="1.0" encoding="UTF-8"?>
<Root>
	<Entity1 title="abc">
		<Entity2>a</Entity2>
	</Entity1>
	
	<Entity1 title="cba">
		<Entity2>b</Entity2>
	</Entity1>
	
	<Entity1 title="nba">
		<Entity2>c</Entity2>
	</Entity1>
</Root>


构建Root的子元素Entity1类
package com.my.study.entity;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "Entity1")
public class Entity1 {
	@XmlAttribute(name = "title", required = true)
	String title;

	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}

	@XmlElement(name = "Entity2", required = true, type = String.class)
	String entity2;

	public String getEntity2() {
		return entity2;
	}
	public void setEntity2(String entity2) {
		this.entity2 = entity2;
	}
	
	public String toString(){
		return "[Entity1][title:"+ title +"][Entity2:"+entity2+"]";
	}
}


构建Root类
package com.my.study.entity;

import java.util.List;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "Root")
public class Root {
	
	@XmlElement(name = "Entity1", required = true, type = Entity1.class)
	List<Entity1> entity1s;

	public List<Entity1> getEntity1s() {
		return entity1s;
	}

	public void setEntity1s(List<Entity1> entity1s) {
		this.entity1s = entity1s;
	}
	
	public String toString(){
		StringBuffer strBuf = new StringBuffer();
		for( Entity1 e : entity1s )
			strBuf.append(e.toString()).append("\n");
		return strBuf.toString();
	}
}


编写main方法类
package com.my.study;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;

import com.my.study.entity.Root;


public class MyTest {
	public static void main(String[] args) {
		try {
			JAXBContext context = JAXBContext.newInstance(Root.class);
			Unmarshaller um = context.createUnmarshaller();
			
			Root result = (Root)um.unmarshal(new FileInputStream(new File("./test.xml")));

			System.out.println(result.toString());
		} catch (JAXBException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
	}
}


运行结果为:
[Entity1][title:abc][Entity2:a]
[Entity1][title:cba][Entity2:b]
[Entity1][title:nba][Entity2:c]
分享到:
评论

相关推荐

    webservice中的xml解包

    远程调用时,有时会把数据和调用信息一起发过来,服务器会解析这些数据和调用信息并执行调用, 这里就是我实现的一个服务器端的解析并调用的程序,并没有webservice的成分。 详情请看readme.txt 。

    一个小型的XML解析工具包

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在数据交换、配置文件、文档存储等领域。这个小型的XML解析工具包是为开发者提供的一种轻量级解决方案,旨在帮助理解和处理XML文档。下面我们...

    对XML文件进行修改的代码并有注解

    使用 Dom4j 对 XML 文件进行修改 在本节中,我们将学习如何使用 Dom4j 库对 XML 文件进行修改,包括添加、删除和修改节点,属性的添加和删除等操作。 Dom4j 简介 Dom4j 是一个 Java 库,用于解析和操作 XML 文件...

    在PHP中處理xml文件

    XML(可扩展标记语言)是一种用于存储和传输数据的格式,具有良好的结构化和灵活性。本篇将深入探讨如何在PHP环境中读取、解析、操作以及生成XML文件。 首先,PHP提供了几个内置的XML处理函数和类库,如DOMDocument...

    ctce8中兴配置文件编辑器.zip

    在Windows的管理员模式下的命令行终端,比如cmd或者powershell中使用。 exe文件没有可视化界面UI!只能命令行下使用。 .\ztecfg.exe -h 作者:欲断魂 介绍:仅支持中兴光猫3.0配置加解密 usage: ztecfg.exe [-h] -i...

    如龙解包工具 GMD工具

    3. 支持多种资源类型:支持《如龙》系列游戏中的各种资源文件格式,包括图像(PNG、JPG)、音频(WAV、MP3)、脚本(XML、JSON)等。 4. 用户友好的界面:提供直观的操作界面,即使是对编程不熟悉的用户也能轻松上手...

    XP3文件解包工具

    此外,解包后的文件可能包含多种格式,例如WAV音乐文件、PNG图像文件、XML配置文件等,这些都需要相应的软件才能打开和编辑。例如,音频文件可能需要音频编辑软件如Audacity,图像文件可能需要Photoshop或其他图像...

    ApkTool 解包和打包

    - **编辑资源**:进入解包后的目录,你可以查看和修改AndroidManifest.xml、res/目录下的资源文件,甚至修改smali代码(Dalvik字节码)。 - **打包APK**:完成修改后,使用`apktool b &lt;directory&gt;`命令将修改后的...

    BNSTools 解包压包工具

    用于解析剑灵的DAT和BIN文件进行数据修改,如在GameSetting游戏专栏中有使用BNSTools进行解包压包的使用案例,通过解包器修改xml.dat文件修改乳量方法,如果您未能看见该案例,即已被作者隐藏,如有需要作者在线可以...

    android xml文件解码工具

    在Android开发过程中,XML文件扮演着至关重要的角色,它们用于定义布局、资源、动画等多种配置。当遇到加密或编码格式不熟悉的XML文件时,我们就需要借助特定的工具进行解码和解析,以便理解和编辑这些文件。...

    APP固件解包工具

    标题中的“APP固件解包工具”指的是一个用于分析和提取APP应用固件内容的工具。固件通常包含了应用程序的二进制代码、资源文件、配置信息等,是软件在硬件设备上的具体实现形式。解包工具可以帮助开发者或逆向工程师...

    解包system.img工具

    在解包system.img时,aapt可能用于解析和处理图像、XML布局等资源文件。 4. ext4_unpacker.exe:这是一个专门用于解压ext4文件系统的工具。ext4是Android系统最常用的文件系统,system.img通常就是基于这个格式。这...

    apk解包打包工具

    本文将详细介绍如何使用apk解包打包工具,以及相关步骤,适合初学者学习。 首先,我们要理解APK解包的目的是什么。解包APK是为了查看应用的源代码、资源文件,或者进行逆向工程分析。这通常用于调试、学习或安全...

    华为海思和高通手机固件解包工具

    解包工具可以解析这些文件,将原始的二进制数据转化为可读的文本格式,比如XML、JSON等。这有助于开发者理解固件的组成,甚至修改特定部分。例如,通过解包,可以获取到设备的基带版本、系统版本信息,以及针对特定...

    CPB解包工具

    3. 解包过程:点击“解包”按钮,工具会自动分析并解密CPB文件的内容,将其转换为常见的文件格式,如PNG(图片)、WAV(音频)或XML(数据文件)等。 4. 文件管理:解包完成后,用户可以在指定的输出目录下查看和...

    微信小游戏解包工具wxapkg

    1. **查看资源**:解包后,你可以看到游戏中的所有图片、音频、XML配置文件等资源,这对于美工和音效师来说,是一个了解游戏素材的好方法。 2. **分析逻辑**:解包后的JavaScript代码虽然可能经过混淆,但通过一定的...

    华为官方固件APP专用解包工具

    6. **Profiles.xml**: 这个文件可能包含了不同的设备配置或者解包规则,允许工具根据不同的设备型号或固件版本进行适配和处理。 7. **update.zip**: 这是待解包的华为设备固件更新文件,通常包含有系统的更新内容,...

    分享PPTX_yxt.pptx

    下了【webservice中的xml解包】http://download.csdn.net/detail/yangxiutian/5405109资源的朋友可以看下。

    资源pkg文件解包工具

    1. 文件结构:pkg文件的内部结构是基于XML的,包含了安装包的各种信息,如文件路径、大小、目标位置等。解包工具需要能够解析这种格式,以便正确地提取出内容。 2. 资源提取:解包工具不仅要能读取pkg文件的元数据...

    mdb jpg gif 解包工具

    3. **解包过程**:解包工具会读取`.mdb`文件的内容,包括表、查询、宏、模块等,并将它们导出为可读格式,如`.txt`、`.csv`或`.xml`。这样,用户就可以使用其他应用程序(如Excel)查看和处理数据。 4. **图片文件...

Global site tag (gtag.js) - Google Analytics