java读取XML文件,及封装XML字符串
package com.yyl.text; import java.io.FileInputStream;
import java.util.ArrayList; import org.junit.Test;
import org.nuxeo.common.xmap.XMap; import com.yin.vo.Book;
import com.yin.vo.Books; public class XmapTest { /**
* 读取XML文件内容
* @throws Exception
*/
@Test
public void createXML() throws Exception{
XMap xmp = new XMap();
//解析xml 将xml内容转换成javaBean
xmp.register(Books.class);
FileInputStream in = new FileInputStream("D:\\WORK\\workspace\\MyProject\\src\\com\\yin\\book.xml");
Object[] result = (Object[]) xmp.loadAll(in);
Books bookes=(Books)result[0];
System.out.println(bookes.getBook().get(0).getTitle());
} /**
* 将对象转成xml字符串
*/
//@Test
public void readXML(){
Books books=new Books();
Book book=new Book();
ArrayList<String> sj=new ArrayList<String>();
sj.add("java程序设计啦啦集合list");
sj.add("j");
book.setNo("1");
book.setPrice("15块钱");
book.setTitle("java程序设计");
book.setSubjects(sj);
books.addBook(book); Book book2=new Book();
book2.setNo("2");
book2.setPrice("25块钱");
book2.setTitle("c程序设计傻逼");
ArrayList<String> li=new ArrayList<String>();
li.add("c程序设计啦啦list");
li.add("C");
book2.setSubjects(li);
books.addBook(book2); XMap xmp = new XMap();
//将javaBean转换成xml文件
xmp.register(Books.class);
ArrayList<String> filters=new ArrayList<String>();
try {
System.out.println(xmp.asXmlString(books, "UTF-8", filters, true));
} catch (Exception e) {
e.printStackTrace();
}
}
}
books.java
package com.yyl.vo; import java.util.ArrayList;
import java.util.List; import org.nuxeo.common.xmap.annotation.XNodeList;
import org.nuxeo.common.xmap.annotation.XObject; @XObject(value = "books")
public class Books {
@XNodeList(value = "book", type = ArrayList.class, componentType = Book.class)
private List< Book> book;
public List< Book> getBook() {
return book;
}
public void setBook(List< Book> book) {
this.book = book;
}
public void addBook(Book b){
if(book==null){
book=new ArrayList<Book>();
}
book.add(b);
}
}
book.java
package com.yyl.vo; import java.util.ArrayList;
import java.util.List; import org.nuxeo.common.xmap.annotation.XNode;
import org.nuxeo.common.xmap.annotation.XNodeList;
import org.nuxeo.common.xmap.annotation.XObject; @XObject
public class Book {
@XNode("title")
private String title;
@XNode("@no")
private String no;
@XNodeList(value = "subject", type = ArrayList.class, componentType =
String.class)
private List< String> subjects;
@XNode("price")
private String price;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public List< String> getSubjects() {
return subjects;
}
public void setSubjects(List< String> subjects) {
this.subjects = subjects;
}
public String getPrice() {
return price;
}
public void setPrice(String t) {
this.price =t;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
}
book.xml
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book no="1">
<title>java程序设计</title>
<subject>java</subject>
<subject>j</subject>
<price>10块钱</price>
</book>
<book no="2">
<title>c++是傻逼</title>
<subject>C++</subject>
<subject>c</subject>
<price>10块钱</price>
</book>
</books>
java读取XML文件,及封装XML字符串的更多相关文章
- java读取xml文件报“org.xml.sax.SAXParseException: Premature end of file” .
背景:java读取xml文件,xml文件内容只有“<?xml version="1.0" encoding="UTF-8"?>”一行 java读取该 ...
- xml文件生成方式一(字符串拼接,将多实体类对象写入xml文件)
1.xml文件生成,拼接字符串使用StringBuffer或StringBuilder 2.拼接好后写入文件即可,将多个实体类写入xml文件 3.这种方式比较简单,但是操作也比较麻烦 4.下面是我的代 ...
- Java中使用DOM4J来生成xml文件和解析xml文件
一.前言 现在有不少需求,是需要我们解析xml文件中的数据,然后导入到数据库中,当然解析xml文件也有好多种方法,小编觉得还是DOM4J用的最多最广泛也最好理解的吧.小编也是最近需求里遇到了,就来整理 ...
- java读取大文件 超大文件的几种方法
java 读取一个巨大的文本文件既能保证内存不溢出又能保证性能 import java.io.BufferedReader; import java.io.File; import jav ...
- Atitit. C# java 的api 文件夹封装结构映射总结
Atitit. C# java 的api 文件夹封装结构映射总结 C# java ref System.Reflection System.Type. java.lang.ref concurren ...
- java分享第十六天( java读取properties文件的几种方法&java配置文件持久化:static块的作用)
java读取properties文件的几种方法一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取Propert ...
- C# 操作XML文件,用XML文件保存信息
using System; using System.Collections.Generic; using System.Text; using System.Xml; using System.IO ...
- Java读取properties文件工具类并解决控制台中文乱码
1.建立properts文件(error.message.properties) HTTP201= 请求成功并且服务器创建了新的资源 2.在spring-mvc.xml文件(applicationCo ...
- java 读取 yaml 文件
做 java 项目用的最多的配置文件就是 properites 或者 xml, xml 确实是被用烂了,Struts, Spring, Hibernate(ssh) 无一不用到 xml.相比厚 ...
随机推荐
- 选择webpack这条路,我踩过的坑
在http://www.jianshu.com/p/42e11515c10f这篇文章,我重新学习了一下webpack. 一.json文件里面不应该含有注释,否则会报错 本来我的json文件长这个样子: ...
- Image Processing and Analysis_8_Edge Detection:Finding Edges and Lines in Images by Canny——1983
此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...
- 跟着我一步一步的搭建一个基于springcloud的微服务实例
Table of Contents generated with DocToc microservicecloud 插件推荐 建立父工程Microservicecloud 搭建Employ员工服务 创 ...
- Unicode(统一码、万国码、单一码)
Unicode(统一码.万国码.单一码)是一种在计算机上使用的字符编码.它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言.跨平台进行文本转换.处理的要求.1990年开始研发,199 ...
- 通过shell发送邮件
安装mailx CentOS 7自带有mailx软件包, 有/usr/bin/mail命令, 配置文件为/etc/mail.rc. 如果没有软件包, 可以安装 CentOS/Fedora yum in ...
- fsLayui缓存使用
概述 缓存主要使用在编辑或查看页面查询数据的方式,通过后端servlet接口获取数据还是通过前端缓存获取.缓存可以使用在实时性要求不高的上面.减少后端servlet请求. 使用步骤 配置支持缓存 需要 ...
- 嵌入式系统FreeRTOS — 互斥信号量
互斥信号量可以在资源保护的时候很有帮助.用于控制在两个或多个任务间访问共享资源.任务1里面用互斥,那么任务2只能等任务1访问完再访问同一个变量. 比如全局变量double gADC_value[CH_ ...
- struts2之多文件上传与拦截器(8)
前台jsp <s:form action="uploadAction" enctype="multipart/form-data" method=&quo ...
- Python3-def
def hello(): print("这是一个无参数的方法!") hello(); print("") def helloOne(str): print(st ...
- mysql批量新增和批量删除
首先推荐使用PreparedStatement的批量处理操作. Connection conn = null; PreparedStatement stmt = null; try{ Class.fo ...