java解析xml

<?xml version="1.0" encoding="UTF-8"?>
<mimetype><default><mime-type>text/html</mime-type></default><mime-mapping><extension>zip</extension><mime-type>application/zip</mime-type></mime-mapping><mime-mapping><extension>xml</extension><mime-type>text/xml</mime-type></mime-mapping>
</mimetype>                

1. SAXReader

    public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException, DocumentException {//流式读取File file = new File("mimetype.xml");Document doc = new SAXReader().read(file);Element mimetype = doc.getRootElement();System.out.println("根元素名:" + mimetype.getName());Element defaultElement = mimetype.element("default");System.out.println("默认元素的mime-type:" + defaultElement.elementText("mime-type"));List<Element> mime_mappings = mimetype.elements("mime-mapping");System.out.println("元素集合的数据:" + mime_mappings.size());}

这是读文件的,好像直接读字符串还不怎么方便。

String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><mimetype></mimetype>";
Reader reader = new StringReader(xml);
Document doc = new SAXReader().read(reader);

以Reader为桥梁来读取String类型的xml  2016-03-12 13:00:27

2. JAXB

@XmlRootElement(name="user")
public class User {public String name = "ken";public int age = 24;public static void main(String[] args) throws Exception {JAXBContext jaxbContext = JAXBContext.newInstance(User.class);  Marshaller jaxbMarshaller = jaxbContext.createMarshaller();  User m = new User();jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);  //有缩进
        jaxbMarshaller.marshal(m, System.out);  String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><user><name>ken</name><age>24</age></user>";Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();User m2 = (User) unmarshaller.unmarshal(new StringReader(xml));System.out.println("我的名字:" + m2.name);}
}

简单类型的解析与序列化  2016-03-12 17:48:55

@XmlRootElement(name="user")
public class User {public String name = "ken";public int age = 24;public Address address = new Address();public static class Address{public String name = "永州";}
}

  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <user>
    <name>ken</name>
    <age>24</age>
    <address>
        <name>永州</name>
    </address>
  </user>

 

@XmlRootElement(name="user")
public class User {public String name = "ken";public int age = 24;@XmlElementWrapper(name="list")  public List<Address> address;public static class Address{public String name = "永州";public Address(String name){this.name = name;}}
}

  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <user>
    <name>ken</name>
    <age>24</age>
    <list>
      <address>
          <name>永州</name>
      </address>
      <address>
          <name>广州</name>
      </address>
    </list>
  </user>

 

 

转载于:https://www.cnblogs.com/angelshelter/p/5268404.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272221.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux常见英文报错中文翻译(菜鸟必知)

Linux常见英文报错中文翻译(菜鸟必知)1.command not found 命令没有找到2.No such file or directory 没有这个文件或目录3.Permission denied 权限不足4.No space left on device 磁盘没有剩余空间5.File exists 文件已经存在6.Is a directory 这是1个目录7.Not a directory 不…

阿里开源分布式事务seata带你入门

介绍 Seata 是阿里巴巴开源的分布式事务中间件&#xff0c;一种分布式事务解决方案&#xff0c;具有高性能和易于使用的微服务架构。 1:对业务无侵入&#xff1a;即减少技术架构上的微服务化所带来的分布式事务问题对业务的侵入 2:高性能&#xff1a;减少分布式事务解决方案…

exec族函数、system函数、popen函数、PATH

exec族函数函数的作用&#xff1a; 我们用fork函数创建新进程后&#xff0c;经常会在新进程中调用exec函数去执行另外一个程序。当进程调用exec函数时&#xff0c;该进程被完全替换为新程序&#xff08;在exec都后面的代码不会被得到执行&#xff09;。因为调用exec函数并不创建…

jquery.validate.unobtrusive的使用

应用 一、引入 <script src"Scripts/jquery-1.7.1.min.js"></script> <script src"Scripts/jquery.validate.js"></script> <script src"Scripts/jquery.validate.unobtrusive.js"></script> 二、1&#xf…

Linux操作系统六大优点

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

[webview] 放大缩小的问题

http://www.cocoachina.com/bbs/read.php?tid33249转载于:https://www.cnblogs.com/zxykit/p/5274831.html

进程间通信IPC(一)(半双工管道和消息队列)

引言&#xff1a; 之前学习的进程之间交换信息的方法只能由fork或exec传送打开文件&#xff0c;或者文件系统。但是这种通讯方式有局限性&#xff0c;接下来将说明进程之间相互通信的其他技术——IPC(InterProcessCommunication)&#xff0c;过去UNIX系统IPC是各种进程间通信方…

Seata相关概念

相关概念 XID&#xff1a;一个全局事务的唯一标识 Transaction Coordinator (TC)&#xff1a; 事务协调器&#xff0c;维护全局事务的运行状态&#xff0c;负责协调并驱动全局事务的提交或回滚&#xff08;可以理解为事务的协调者&#xff09;。 Transaction Manager (TM)&…

VSS配置

http://www.cnblogs.com/FreeDong/articles/2193151.html转载于:https://www.cnblogs.com/lacey/p/5275514.html

Program terminated with signal SIGSEGV, Segmentation fault.

问题&#xff1a; 在程序运行时出现了&#xff1a;Segmentation fault (core dumped)&#xff0c;分段故障(堆芯转储)也就是段错误。 我首先在一篇博客上面找到如何使用gdb调试&#xff1a; 1、首先使用ulimit -a查看你的core file size是否为0.如果不是的话就请跳到步骤3&am…

NFS简介

NFS 是Network File System的缩写&#xff0c;即网络文件系统。一种使用于分散式文件系统的协定&#xff0c;由Sun公司开发&#xff0c;于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据&#xff0c;让应用程序在客户端通过网络访问位于服…

Php Laravel框架 多表关系处理 之 Eloquent一对多关系处理

Php Laravel框架 多表关系处理 之 Eloquent一对多关系处理 本博文主要介绍 Laravel 框架中 Eloquent 对一对多关系的处理以及在 Laravel Administrator(后台扩展包)中的应用。 您的数据库可能是彼此相关的。比方&#xff0c;一篇博客文章可能有很多评论&#xff0c;或者一个订…

进程间通信IPC(二)(共享内存、信号、信号量)

共享内存&#xff1a; 共享内存就是允许两个或多个进程共享一定的存储区。就如同 malloc() 函数向不同进程返回了指向同一个物理内存区域的指针。当一个进程改变了这块地址中的内容的时候&#xff0c;其它进程都会察觉到这个更改。因为数据不需要在客户机和服务器端之间复制&am…

分布式理论CAP定理

CAP原则又称CAP定理&#xff0c;指的是在一个分布式系统中&#xff0c; Consistency&#xff08;一致性&#xff09;、 Availability&#xff08;可用性&#xff09;、Partition tolerance&#xff08;分区容错性&#xff09;&#xff0c;三者不可兼得。 998年&#xff0c;加州…

xmlWriter 以UTF-8格式写xml问题

dom4j中的XMLWriter提供以下几种构造方法&#xff1a; XMLWriter() XMLWriter(OutputFormat format) XMLWriter(OutputStream out) XMLWriter(OutputStream out, OutputFormat format) XMLWriter(Writer writer) XMLWriter(Writer writer, OutputFormat format) 最简单常…

linux线程(互斥锁、条件)

线程概念&#xff1a; 典型的UNIX/Linux进程可以看成只有一个控制线程&#xff1a;一个进程在同一时刻只做一件事情。有了多个控制线程后&#xff0c;在程序设计时可以把进程设计成在同一时刻做不止一件事&#xff0c;每个线程各自处理独立的任务。 进程是程序执行时的一个实例…

centos下防火墙设置

1、开启防火墙 systemctl start firewalld2、开放指定端口firewall-cmd --zonepublic --add-port8888/tcp --permanent命令含义&#xff1a; --zone #作用域 --add-port1935/tcp #添加端口&#xff0c;格式为&#xff1a;端口/通讯协议 --permanent #永久生效&#xff0c;没有…