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.相比厚 ...
随机推荐
- 【转】CSS之Background-Position left right center top bottom属性
background-position:left top; 背景图片的左上角和容器(container)的左上角对齐,超出的部分隐藏. 等同于 background-position:0,0; 也等同 ...
- 安卓开发之sql语句增删改查
package com.lidaochen.phonecall; import android.content.Context; import android.database.sqlite.SQLi ...
- win 10 睡眠无法唤醒
近日遇到win10系统睡眠后无法唤醒的问题,于是网上到处搜索解决办法,试了其中几个比如回退 Intel(R) Management Engine Interface 的版本.设置电源的睡眠选项以利用休 ...
- java程序启动极慢的问题处理
在程序部署过程中,遇到一次java程序启动极慢的情况 参考:https://www.iteye.com/blog/windshome-1836885 原部署环境是有外网的,启动java极快 后来极其修 ...
- Miniconda虚拟环境管理工具命令方法
创建制定Python版本的虚拟环境 conda create --name 虚拟环境名称 Python=3.7.3(版本号) 进入指定虚拟环境 conda activate 虚拟环境名称 退出虚拟环境 ...
- Mysql系列-性能优化神器EXPLAIN使用介绍及分析
MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句进行分析, 并输出 SELECT 执行的详细信息, 以供开发人员针对性优化. EXPLAIN 命令用法十分简单, 在 SEL ...
- java——spring中bean的作用域
文章:理解Spring框架中Bean的作用域 博客地址:https://baijiahao.baidu.com/s?id=1610298792072480906&wfr=spider& ...
- [SDOI2010]代码拍卖会——DP
原题戳这里 绝对是一道好题 需要注意到两个东西 1.符合条件的数可以拆成一堆\(11...11\)相加的形式,比如\(1145=1111+11+11+11+1\) 2.\(1,11,111,1111, ...
- python中else与finally的总结
1.else的用法 对try...except的补充: else子句的使用比在子句中添加其他代码更好,try因为它避免了意外捕获由try... except语句保护的代码未引发的异常. for arg ...
- Python JSONⅢ
JSON 函数 encode Python encode() 函数用于将 Python 对象编码成 JSON 字符串. 语法 实例 以下实例将数组编码为 JSON 格式数据: 以上代码执行结果为: d ...