1. package com.yyl.text;
  2.  
  3. import java.io.FileInputStream;
  4. import java.util.ArrayList;
  5.  
  6. import org.junit.Test;
  7. import org.nuxeo.common.xmap.XMap;
  8.  
  9. import com.yin.vo.Book;
  10. import com.yin.vo.Books;
  11.  
  12. public class XmapTest {
  13.  
  14. /**
  15. * 读取XML文件内容
  16. * @throws Exception
  17. */
  18. @Test
  19. public void createXML() throws Exception{
  20. XMap xmp = new XMap();
  21. //解析xml 将xml内容转换成javaBean
  22. xmp.register(Books.class);
  23. FileInputStream in = new FileInputStream("D:\\WORK\\workspace\\MyProject\\src\\com\\yin\\book.xml");
  24. Object[] result = (Object[]) xmp.loadAll(in);
  25. Books bookes=(Books)result[0];
  26. System.out.println(bookes.getBook().get(0).getTitle());
  27. }
  28.  
  29. /**
  30. * 将对象转成xml字符串
  31. */
  32. //@Test
  33. public void readXML(){
  34. Books books=new Books();
  35. Book book=new Book();
  36. ArrayList<String> sj=new ArrayList<String>();
  37. sj.add("java程序设计啦啦集合list");
  38. sj.add("j");
  39. book.setNo("1");
  40. book.setPrice("15块钱");
  41. book.setTitle("java程序设计");
  42. book.setSubjects(sj);
  43. books.addBook(book);
  44.  
  45. Book book2=new Book();
  46. book2.setNo("2");
  47. book2.setPrice("25块钱");
  48. book2.setTitle("c程序设计傻逼");
  49. ArrayList<String> li=new ArrayList<String>();
  50. li.add("c程序设计啦啦list");
  51. li.add("C");
  52. book2.setSubjects(li);
  53. books.addBook(book2);
  54.  
  55. XMap xmp = new XMap();
  56. //将javaBean转换成xml文件
  57. xmp.register(Books.class);
  58. ArrayList<String> filters=new ArrayList<String>();
  59. try {
  60. System.out.println(xmp.asXmlString(books, "UTF-8", filters, true));
  61. } catch (Exception e) {
  62. e.printStackTrace();
  63. }
  64. }
  65. }

books.java

  1. package com.yyl.vo;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import org.nuxeo.common.xmap.annotation.XNodeList;
  7. import org.nuxeo.common.xmap.annotation.XObject;
  8.  
  9. @XObject(value = "books")
  10. public class Books {
  11. @XNodeList(value = "book", type = ArrayList.class, componentType = Book.class)
  12. private List< Book> book;
  13. public List< Book> getBook() {
  14. return book;
  15. }
  16. public void setBook(List< Book> book) {
  17. this.book = book;
  18. }
  19. public void addBook(Book b){
  20. if(book==null){
  21. book=new ArrayList<Book>();
  22. }
  23. book.add(b);
  24. }
  25. }

book.java

  1. package com.yyl.vo;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import org.nuxeo.common.xmap.annotation.XNode;
  7. import org.nuxeo.common.xmap.annotation.XNodeList;
  8. import org.nuxeo.common.xmap.annotation.XObject;
  9.  
  10. @XObject
  11. public class Book {
  12. @XNode("title")
  13. private String title;
  14. @XNode("@no")
  15. private String no;
  16. @XNodeList(value = "subject", type = ArrayList.class, componentType =
  17. String.class)
  18. private List< String> subjects;
  19. @XNode("price")
  20. private String price;
  21. public String getTitle() {
  22. return title;
  23. }
  24. public void setTitle(String title) {
  25. this.title = title;
  26. }
  27. public List< String> getSubjects() {
  28. return subjects;
  29. }
  30. public void setSubjects(List< String> subjects) {
  31. this.subjects = subjects;
  32. }
  33. public String getPrice() {
  34. return price;
  35. }
  36. public void setPrice(String t) {
  37. this.price =t;
  38. }
  39. public String getNo() {
  40. return no;
  41. }
  42. public void setNo(String no) {
  43. this.no = no;
  44. }
  45. }

book.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <books>
  3. <book no="1">
  4.   <title>java程序设计</title>
  5.   <subject>java</subject>
  6.   <subject>j</subject>
  7.   <price>10块钱</price>
  8.   </book>
  9. <book no="2">
  10.   <title>c++是傻逼</title>
  11.   <subject>C++</subject>
  12.   <subject>c</subject>
  13.   <price>10块钱</price>
  14.   </book>
  15. </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. LLVM使用其他Pass的结果

    之前的工作一直集中在clang中,最近有点空闲时间,又重新熟悉了一下Pass的书写过程.(参考LLVM CookBook和http://llvm.org/docs/WritingAnLLVMPass. ...

  2. LLVM新建全局变量

    在LLVM中,有原生的AST Clone,却没有一个比较好的Stmt copy功能,基于Scout在LLVM上进行的修改,我们实现了自己的Stmt Clone功能. 要进行Stmt Clone,肯定需 ...

  3. mORMot学习笔记2-2种方式查询数据

    本例使用SqlServer 第一种方式结果放入Memo控件,,需要引用SynCommons, SynDB, SynOleDb; procedure TForm1.Button1Click(Sender ...

  4. 用window.showModalDialog()打开的页面Request.UrlReferrer为null

    今天在解决一个问题,怎么也找不到解决方案.我的一个窗体是IE通过window.showModalDialog()打开的,但为了防止用户手工输的地址,所以我需要判断是通过别的页面调整获得,用Reques ...

  5. Django—ModelForm

    简介 Model + Form ==> ModelForm.model和form的结合体,所以有以下功能: 验证 数据库操作 Form回顾 models.py class UserType(mo ...

  6. ACM-ICPC 2018 徐州赛区网络预赛 J. Maze Designer (最大生成树+LCA求节点距离)

    ACM-ICPC 2018 徐州赛区网络预赛 J. Maze Designer J. Maze Designer After the long vacation, the maze designer ...

  7. linux和unix下crontab的使用

    在LINUX中,周期执行的任务一般由cron这个守护进程来处理 [ps -ef | grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为 ...

  8. centos6.5解压及压缩zip压缩包

    查看zip压缩文件的内容而不解压:unzip -l filename.zip 将zip包解压到指定路径(若不指定路径则为当前目录):unzip filename.zip -d /usr/file 压缩 ...

  9. 题解 【NOIP2006】作业调度方案

    [NOIP2006]作业调度方案 Description 我们现在要利用 m 台机器加工 n 个工件,每个工件都有 m 道工序,每道工序都在不同的指定的机器上完成.每个工件的每道工序都有指定的加工时间 ...

  10. 宽字符(UNICODE)字符集

    推荐使用宽字符(UNICODE)字符集,严格使用宽字符集的函数和定义.具体参考https://blog.csdn.net/qq_22642239/article/details/84822485