New open source project happyxml

happyxml

Project address: https://github.com/yuancihang/happyxml

 

Short and concise xml operation package, only a few hundred lines of code. Supports binding annotations to objects

 

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'

 

 

 

 

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326896166&siteId=291194637