Java解析xml文件和json转换的方法(DOM4j解析)

Java解析xml的方法有四种:

  1. DOM解析
  2. SAX解析
  3. JDOM解析
  4. DOM4J解析
本次主要介绍使用DOM4j进行解析:
这里我主要使用两种方式去解析:
xml文件内容
金苹果锄禾日当午 银苹果苹果很幸苦

节点操作解析
public class Demo1 {public static void main(String[] args) throws IOException, DocumentException {// 获取输入流FileInputStream fis = new FileInputStream("javaSE/src/com/practise/xml_json/book.xml"); // 创建xml的读取对象SAXReader reader = new SAXReader(); // 读取xml文件Document document = reader.read(fis); // 获取根节点对象Element root = document.getRootElement(); // 获取根节点的名字List books = root.elements(); // 遍历获取第二个节点for (int i = 0; i < books.size(); i++) {Element book = books.get(i); System.out.println(book.attributeValue("id")); System.out.println(book.elementTextTrim("name")); System.out.println(book.elementTextTrim("info")); /*使用循环一直获取xml的内容,个人认为适合操作不知道标签的情况下操作,以免造成内存的浪费。*///List list = book.elements(); //for (int j = 0; j < list.size(); j++) {//System.out.println(list.get(j).getTextTrim()); //}}fis.close(); }}

运行结果:
Java解析xml文件和json转换的方法(DOM4j解析)
文章图片

6. 使用XPATH进行解析
public class XpathDemo {/*/: 表示根节点//: 从发起查找的节点开始查找后代节点.: 查找当前节点..: 查找父节点@: 选择属性 *使用方式:[@属性名='值']*/public static void main(String[] args) throws FileNotFoundException, DocumentException {FileInputStream fis = new FileInputStream("javaSE/src/com/practise/xml_json/book.xml"); SAXReader read = new SAXReader(); Document document = read.read(fis); // 通过文档对象+XPath查找所有的name节点List names = document.selectNodes("//name"); for (Node name : names) {System.out.println(name.getName() + ":" + name.getText()); }// 获取指定id的name节点Node node = document.selectSingleNode("//book[@id='1']//name"); System.out.println(node.getName() + ":" + node.getText()); }}

Java转换json数据,在这里我推荐两个包,就是fastjson和gjson
fastjson作为alibaba的国内开源json包,也是很不错的,但是在1.2.69的版本上好像有bug,后面应该已经改善了。
gjson的作为谷歌的国外的开源ison包,也有其优势。
我主要就是说一说这两个开源包的使用
  • fastjson的使用
fastjson里面封装了一个抽象的JSON类,里面有着许多静态方法,所以我们不需要实例化对象,直接通过类名.方法名就可以调用了。
public class FastJsonDemo {public static void main(String[] args) {// 将对象转换为json数据System.out.println(JSON.toJSON(new Book(1001, "水浒传", "武松打虎"))); // 将json对象转换为Java对象,注意不要把双引号改为单引号,这里的双引号是通过了转义的得到的Book book = JSON.parseObject("{\"id\":1001,\"name\":\"水浒传\",\"info\":\"武松打虎\"}", Book.class); System.out.println(book.getName()); }}

运行结果:
Java解析xml文件和json转换的方法(DOM4j解析)
文章图片

-gjson的使用
gson使用起来相对于fastjson来说有点复杂.
public class JsonDemo1 {public static void main(String[] args) {// 创建gson对象Gson gson = new Gson(); // 转换Book book = new Book(1001, "水浒传", "武松打虎"); String s = gson.toJson(book); System.out.println(s); System.out.println(gson.fromJson(s, Book.class)); }}

运行结果:
Java解析xml文件和json转换的方法(DOM4j解析)
文章图片

【Java解析xml文件和json转换的方法(DOM4j解析)】到此这篇关于Java解析xml文件和json转换的文章就介绍到这了,更多相关java xml文件json转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    推荐阅读