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字符串的更多相关文章

  1. java读取xml文件报“org.xml.sax.SAXParseException: Premature end of file” .

    背景:java读取xml文件,xml文件内容只有“<?xml version="1.0" encoding="UTF-8"?>”一行 java读取该 ...

  2. xml文件生成方式一(字符串拼接,将多实体类对象写入xml文件)

    1.xml文件生成,拼接字符串使用StringBuffer或StringBuilder 2.拼接好后写入文件即可,将多个实体类写入xml文件 3.这种方式比较简单,但是操作也比较麻烦 4.下面是我的代 ...

  3. Java中使用DOM4J来生成xml文件和解析xml文件

    一.前言 现在有不少需求,是需要我们解析xml文件中的数据,然后导入到数据库中,当然解析xml文件也有好多种方法,小编觉得还是DOM4J用的最多最广泛也最好理解的吧.小编也是最近需求里遇到了,就来整理 ...

  4. java读取大文件 超大文件的几种方法

    java 读取一个巨大的文本文件既能保证内存不溢出又能保证性能       import java.io.BufferedReader; import java.io.File; import jav ...

  5. Atitit. C# java 的api 文件夹封装结构映射总结

    Atitit. C#  java 的api 文件夹封装结构映射总结 C# java ref System.Reflection System.Type. java.lang.ref concurren ...

  6. java分享第十六天( java读取properties文件的几种方法&java配置文件持久化:static块的作用)

     java读取properties文件的几种方法一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取Propert ...

  7. C# 操作XML文件,用XML文件保存信息

    using System; using System.Collections.Generic; using System.Text; using System.Xml; using System.IO ...

  8. Java读取properties文件工具类并解决控制台中文乱码

    1.建立properts文件(error.message.properties) HTTP201= 请求成功并且服务器创建了新的资源 2.在spring-mvc.xml文件(applicationCo ...

  9. java 读取 yaml 文件

        做 java 项目用的最多的配置文件就是 properites 或者 xml, xml 确实是被用烂了,Struts, Spring, Hibernate(ssh) 无一不用到 xml.相比厚 ...

随机推荐

  1. 手把手封装axios

    大佬链接: https://juejin.im/post/5b55c118f265da0f6f1aa354 一.axios的封装 在vue项目中,和后台交互获取数据这块,我们通常使用的是axios库, ...

  2. C# 校验车架号(VIN码)第9位是否有效算法

    public static bool checkVIN(string vin) { //VIN码从第1位到第17位的“加权值”: Dictionary<int, int> vinMapWe ...

  3. case when语法

    Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数: CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END ...

  4. WeakReference 与 SoftReference 区别

    装载自:http://flyneil.iteye.com/blog/1345177 WeakReference与SoftReference都可以用来保存对象的实例引用,这两个类与垃圾回收有关. Wea ...

  5. jQuery EasyUI 应用 – 创建 CRUD 应用(表格)

    jQuery EasyUI 应用 - 创建 CRUD 应用 本节介绍如何创建CRUD应用. CRUD分别是指在做计算处理时的增加(Create).读取查询(Retrieve).更新(Update)和删 ...

  6. 第三章 Lambda表达式

    第三章 Lambda表达式 3.1 函数式编程思想概述 在数学中,函数就是有输入量.输出量的一套计算方案,也就是“拿什么东西做什么事情”.相对而言,面向对象过分强调“必须通过对象的形式来做事情”,而函 ...

  7. 将windows当做linux/Mac来用 scoop强大的包管理工具

    在Linux中有apt-get.yum这些包安装管理 安装相当方便:如ubuntu安装一个mysql5.7,只需要一个简单的命令: apt-get 而在windows中需要在MySQL官网下载对应版本 ...

  8. Delphi 对象的特性

  9. Linux文件系统之mv(重命名/移动文件)

    mv(move)命令 输入man mv,了解到mv命令是用于移动或重命名文件 语法 mv [options] source dest mv [options] source... directory ...

  10. unity里framebuffer fetch相关问题

    https://docs.unity3d.com/Manual/SL-PlatformDifferences.html 开了framebuffer fetch 如果你再在里面sample 那张rt ( ...