`
yuancihang
  • 浏览: 145379 次
  • 性别: Icon_minigender_1
  • 来自: 洛阳
社区版块
存档分类
最新评论

新的开源项目happyxml

    博客分类:
  • java
 
阅读更多

happyxml

项目地址:https://github.com/yuancihang/happyxml

 

短小精悍的xml操作封装, 只有几百行代码. 支持注解绑定到对象

 

public static void sampleQuery() {
  Dom root = Dom.parse(Paths.get("src/main/resources", "person.xml").toAbsolutePath());

  System.out.println(root.childText("firstname"));

  Dom lastnameDom = root.findChild("lastname");
  System.out.println(lastnameDom.text());

  Dom phoneDom = root.findChild("phone");
  System.out.println(phoneDom.childText("code"));
  System.out.println(phoneDom.childText("number"));

  Dom faxDom = root.findChild("fax");
  System.out.println(faxDom.attr("code"));
  System.out.println(faxDom.attr("number"));

  List<Dom> friendDomList = root.findChild("friends").findChildren("friend");
  for(Dom friendDom : friendDomList){
    System.out.println(friendDom.text());
  }
}

public static void sampleUpdate() {
  Dom root = Dom.newDom("person");

  root.addChild("firstname", "Joe");

  Dom lastnameDom = root.addChild("lastname");
  lastnameDom.text("Walnes");

  Dom phoneDom = root.addChild("phone");
  phoneDom.addChild("code", "123");
  phoneDom.addChild("number", "1234-456");

  Dom faxDom = root.addChild("fax");
  faxDom.attr("code", "123");
  faxDom.attr("number", "9999-999");

  Dom friendsDom = root.addChild("friends");
  friendsDom.addChild("friend", "zhang");
  friendsDom.addChild("friend", "wang");

  System.out.println(root.toString());
}

public static void sampleBindObject(){
  try {
    String xml = readResources("user_buyer_get_response.xml");
    UserBuyerResponse response = Jaxb.parse(UserBuyerResponse.class, xml);

    response.getUserList().forEach(System.out::println);
  } catch (IOException e) {
    e.printStackTrace();
  }
}

private static String readResources(String name) throws IOException{
    Path path = Paths.get("src/main/resources", name).toAbsolutePath();

    return new String(Files.readAllBytes(path), StandardCharsets.UTF_8);
}

 

person.xml

<?xml version="1.0" encoding="UTF-8"?>
<person>
  <firstname>Joe</firstname>
  <lastname>Walnes</lastname>
  <phone>
    <code>123</code>
    <number>1234-456</number>
  </phone>
  <fax code="123" number="9999-999" />
  <friends>
    <friend>zhang</friend>
    <friend>wang</friend>
  </friends>
</person>

 

user_buyer_get_response.xml

<user_buyer_get_response>
    <user>
        <nick>hz0799</nick>
        <sex>m</sex>
        <avatar>http://assets.taobaocdn.com/app/sns/img/default/avatar-120.png</avatar>
    </user>
</user_buyer_get_response>

 maven

<dependency>
    <groupId>com.github.yuancihang</groupId>
    <artifactId>happyxml</artifactId>
    <version>1.1</version>
</dependency>

 gradle

compile 'com.github.yuancihang:happyxml:1.1'

 

 

 

 

分享到:
评论

相关推荐

    90几套Unity开源项目.txt

    4. **实验性质项目**:开发者用于尝试新技术或新想法的小型项目。 ### 四、如何有效利用Unity开源项目 1. **评估项目质量**:在开始学习之前,先大致浏览项目,了解其结构和功能,判断是否符合自己的需求。 2. **...

    go开源项目大全(目前最完整)

    看过awesome-go项目, 汇总了很多go开源项目。 但是awesome-go收集了太全了, 而且每个项目没有详细描述。 因此我自己根据go语言中文社区提供的资料,还有互联网企业架构设计中的常见组件分类, 共精心挑选了100多个...

    优秀开源项目(基于VC++和MFC)(基于VC++和MFC的一些优秀开源项目)

    基于VC++和MFC的一些优秀开源项目列表 包括7-Zip,eMule,FileZilla,MiKTeX,Nokia Composer等优秀项目,有兴趣的同行可以参考参考。

    qt的开源项目源码

    QT开源项目源码是软件开发领域中的宝贵资源,尤其对于想要深入理解图形用户界面(GUI)编程、跨平台应用开发以及C++编程实践的开发者来说,具有极高的学习价值。QT是一个广泛使用的开源框架,由Qt公司开发并维护,它...

    借助开源项目,学习软件开发

    在IT行业中,软件开发是一项核心技能,而开源项目则是学习这项技能的重要途径。开源项目意味着源代码对公众开放,允许任何人查看、学习甚至修改。这种开放性为新手开发者提供了宝贵的资源,使他们能够深入理解软件...

    基于Python Flask的在线成绩发布学习平台开源项目

    项目概述:基于Python Flask的在线成绩发布学习平台是一个开源项目,...该项目旨在为广大用户提供一个便捷的在线学习环境,集中管理和发布学生的成绩信息,其开源性质允许并鼓励用户根据自身需求进行定制化修改和扩展。

    蓝湖移动端辅助工具开源项目下载

    蓝湖移动端辅助工具是一款专为开发者设计的开源项目,旨在简化移动端开发过程中控件属性的复制和粘贴操作。此工具的最新版本为v1.0.2,它能够极大地提高开发效率,尤其是在处理iOS和Android平台上的布局时。通过一键...

    Java最著名的开源项目

    在Java的生态系统中,存在诸多著名的开源项目,这些项目各有特色,为Java开发人员提供了丰富的开发工具和应用架构。以下是对一些Java著名开源项目的详细介绍,它们分别在不同的开发领域中扮演着重要角色。 首先,...

    视频通话 sipandroid 开源项目源码

    原来的网上的开源项目很多都跑不起来,这个项目,经本人修改,经测试在android4.0系统上运行已经没问题,研究了下,发现对需要做视频通话的人来讲还是有很大帮助,特此贡献出来,供大家研究学习,压缩文件是在linux...

    5个好玩的github游戏区开源项目

    在 IT 领域,开源项目一直扮演着重要的角色,它们不仅推动了技术的发展,也为开发者提供了学习和实践的平台。对于游戏爱好者来说,GitHub 上有许多有趣的开源游戏项目,能够让我们深入了解游戏开发的过程,甚至参与...

    Android代码-Android 优秀开源项目实现原理解析

    Android 开源项目 Demo 本工程主要用于 Android 优秀开源项目实现原理解析 的 Demo 代码托管 添加规范 各项目需要新建一个属于自己的文件夹,用于后续上传该开源库使用示例工程代码 该文件夹以开源库名-demo命名,...

    pc远控android开源项目

    PC远程登录手机 登录之后,必然涉及到按键的模拟等操作。 三个开源的软件一个是SmartDog Studio的Remote Control Add-on 另一个是Webkey 最后一个是Android自带monkey

    GitHub开源项目SlidingMenu类库

    GitHub开源项目SlidingMenu的类库,导入之后可以直接使用 教程地址:http://blog.csdn.net/yangyu20121224/article/details/9255829

    教你如何用Github找开源项目(保姆级教程)

    教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你...

    为知笔记开源项目程序源码,实现云笔记功能需要自己搭建服务器

    为知笔记开源项目程序源码,实现云笔记功能需要自己搭建服务器 为知笔记开源项目程序源码,实现云笔记功能需要自己搭建服务器 为知笔记开源项目程序源码,实现云笔记功能需要自己搭建服务器 为知笔记开源项目程序...

    Java项目HTTPDNSLib开源源码 Java项目HTTPDNSLib开源源码

    Java项目HTTPDNSLib开源源码Java项目HTTPDNSLib开源源码Java项目HTTPDNSLib开源源码Java项目HTTPDNSLib开源源码Java项目HTTPDNSLib开源源码Java项目HTTPDNSLib开源源码Java项目HTTPDNSLib开源源码Java项目HTTPDNSLib...

    数字人开源项目,旨在实现实时、互动的数字人流媒体传输,可做毕业设计

    数字人开源项目,旨在实现实时、互动的数字人流媒体传输,可做毕业设计。该技术允许用户创建高度逼真的虚拟人(MetaHuman),并使其能够进行实时交互,适用于虚拟现实、电子游戏以及直播等场景。这个系统支持多种...

    17届全国大学生智能汽车竞赛无线充电组开源项目.zip

    17届全国大学生智能汽车竞赛无线充电组开源项目 17届全国大学生智能汽车竞赛无线充电组开源项目 17届全国大学生智能汽车竞赛无线充电组开源项目 17届全国大学生智能汽车竞赛无线充电组开源项目 17届全国大学生智能...

    开源项目“单点登陆SSO”

    SSO开源项目,基于https的,大家可以在网上搜索研究一下!

    通过对流行的优质android开源项目分析、学习、仿写,最终理解,不仅帮你掌握最新的android技术,更能让你理解开源项目的精华之处.zip

    通过对流行的优质android开源项目分析、学习、仿写,最终理解,不仅帮你掌握最新的android技术,更能让你理解开源项目的精华之处。.zip,Analysis for Popular & Hot Android open-source Applications & Libraries ...

Global site tag (gtag.js) - Google Analytics