​个人博客网:https://wushaopei.github.io/    (你想要这里多有)

  1. package com.example.poiutis.xml;
  2. import com.example.poiutis.model.InvoiceOrder;
  3. import org.jdom2.Attribute;
  4. import org.jdom2.Document;
  5. import org.jdom2.Element;
  6. import org.jdom2.JDOMException;
  7. import org.jdom2.input.SAXBuilder;
  8. import java.io.FileInputStream;
  9. import java.io.FileNotFoundException;
  10. import java.io.IOException;
  11. import java.util.ArrayList;
  12. import java.util.List;
  13. /**
  14. * @ClassName 用JDOM方式读取xml文件
  15. * @Description TODO
  16. * @Author wushaopei
  17. * @Date 2019/8/1 15:14
  18. * @Version 1.0
  19. */
  20. public class ReadXMLByJDom {
  21. private List<InvoiceOrder> invoiceOrders = null;
  22. private InvoiceOrder invoiceOrder = null;
  23. public List<InvoiceOrder> getInvoiceOrders(String fileName) {
  24. SAXBuilder saxBuilder = new SAXBuilder();
  25. try {
  26. Document document = saxBuilder.build(new FileInputStream(fileName));
  27. //获取根节点bookstore
  28. Element rootElement = document.getRootElement();
  29. //获取根节点的子节点,返回子节点的数组
  30. List<Element> bookList = rootElement.getChildren();
  31. invoiceOrders = new ArrayList<InvoiceOrder>();
  32. for (Element bookElement : bookList) {
  33. invoiceOrder = new InvoiceOrder();
  34. //获取bookElement的属性
  35. List<Attribute> bookAttributes = bookElement.getAttributes();
  36. for (Attribute attribute : bookAttributes) {
  37. if (attribute.getName().equals("id")) {
  38. String id = attribute.getValue(); //System.out.println(id);
  39. invoiceOrder.setId(Integer.parseInt(id));
  40. }
  41. }
  42. //获取bookElement的子节点
  43. List<Element> children = bookElement.getChildren();
  44. for (Element child : children) {
  45. if (child.getName().equals("invoiceOrder")) {
  46. String invoiceOrderid = child.getValue();
  47. invoiceOrder.setInvoiceOrder(invoiceOrderid);
  48. // System.out.println("发票单号"+"---"+invoiceOrderid);
  49. } else if (child.getName().equals("companyName")) {
  50. String companyName = child.getValue();
  51. invoiceOrder.setCompanyName(companyName);
  52. // System.out.println("公司名"+"---"+content);
  53. } else if (child.getName().equals("taxNumber")) {
  54. String taxNumber = child.getValue();
  55. invoiceOrder.setTaxNumber(taxNumber);
  56. // System.out.println("金额"+"---"+content);
  57. } else if (child.getName().equals("accountBank")) {
  58. String accountBank = child.getValue();
  59. invoiceOrder.setAccountBank(accountBank);
  60. // System.out.println("开户行"+"---"+content);
  61. } else if (child.getName().equals("companyAddress")) {
  62. String companyAddress = child.getValue();
  63. invoiceOrder.setCompanyAddress(companyAddress);
  64. // System.out.println("公司地址"+"---"+content);
  65. } else if (child.getName().equals("bankNumber")) {
  66. String bankNumber = child.getValue();
  67. invoiceOrder.setBankNumber(bankNumber);
  68. // System.out.println("账号"+"---"+bankNumber);
  69. } else if (child.getName().equals("companyTelephone")) {
  70. String companyTelephone = child.getValue();
  71. invoiceOrder.setCompanyTelephone(companyTelephone);
  72. // System.out.println("公司电话"+"---"+companyTelephone);
  73. } else if (child.getName().equals("accountName")) {
  74. String accountName = child.getValue();
  75. invoiceOrder.setAccountName(accountName);
  76. // System.out.println("账户类型"+"---"+accountName);
  77. }
  78. }
  79. invoiceOrders.add(invoiceOrder);
  80. invoiceOrder = null;
  81. }
  82. } catch (FileNotFoundException e) {
  83. e.printStackTrace();
  84. } catch (JDOMException e) {
  85. e.printStackTrace();
  86. } catch (IOException e) {
  87. e.printStackTrace();
  88. }
  89. return invoiceOrders;
  90. }
  91. public static void main(String[] args) {
  92. String fileName = "src/main/resources/invoiceOrder.xml";
  93. List<InvoiceOrder> invoiceOrders= new ReadXMLByJDom().getInvoiceOrders(fileName);
  94. for(InvoiceOrder invoiceOrder : invoiceOrders){
  95. System.out.println(invoiceOrder);
  96. }
  97. }
  98. }

Java 解析 XML文件的更多相关文章

  1. java解析xml文件并输出

    使用java解析xml文件,通过dom4j,代码运行前需先导入dom4j架包. ParseXml类代码如下: import java.io.File; import java.util.ArrayLi ...

  2. 使用Java解析XML文件或XML字符串的例子

    转: 使用Java解析XML文件或XML字符串的例子 2017年09月16日 11:36:18 inter_peng 阅读数:4561 标签: JavaXML-Parserdom4j 更多 个人分类: ...

  3. Java解析xml文件遇到特殊符号&会出现异常的解决方案

    文/朱季谦 在一次Java解析xml文件的开发过程中,使用SAX解析时,出现了这样一个异常信息: Error on line 60 of document : 对实体 "xxx" ...

  4. java解析XML文件

    dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源 ...

  5. JAVA解析XML文件(DOM,SAX,JDOM,DOM4j附代码实现)

    1.解析XML主要有四种方式 1.DOM方式解析XML(与平台无关,JAVA提供,一次性加载XML文件内容,形成树结构,不适用于大文件) 2.SAX方式解析XML(基于事件驱动,逐条解析,适用于只处理 ...

  6. Java解析XML文件的方式

    在项目里,我们往往会把一些配置信息放到xml文件里,或者各部门间会通过xml文件来交换业务数据,所以有时候我们会遇到“解析xml文件”的需求.一般来讲,有基于DOM树和SAX的两种解析xml文件的方式 ...

  7. java 解析xml文件案例

    package xmlTest; import javax.xml.parsers.*; import org.w3c.dom.*; public class GetXml { public stat ...

  8. 关于java解析xml文件出现的问题

    DOM解析xml文件 问题1:导入javax.xml.parsers.DocumentBuilderFactory出现问题,如图: 解决办法是:由于创建工程时有个默认的jre,重新创建工程改掉就解决了 ...

  9. java解析XML文件四种方法之引入源文件

    1.DOM解析(官方) try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();         Documen ...

  10. 【JAVA解析XML文件实现CRUD操作】

    一.简介. 1.xml解析技术有两种:dom和sax 2.dom:Document Object Model,即文档对象模型,是W3C组织推荐的解析XML的一种方式. sax:Simple API f ...

随机推荐

  1. struts2入门教学

    我的博客地址:https://blog.csdn.net/qq_41907991 首先介绍一下struts2使用的基本步骤: 1.导入相关的 jar 文件 2.需要在 web.xml 文件中配置一个 ...

  2. CDH删除节点(安全)

    经过验证,最快最安全的删除CDH节点的方式,简单概括如下: 1.选中该机器,并停止该机器上的所有角色 2.去对应的服务中删除该机器中每一个角色 3.通过命令行,关闭该机器的的agent服务,并将该机器 ...

  3. CF#637 C. Nastya and Strange Generator

    C. Nastya and Strange Generator 题意 有一个随机全排列生成器,给出你一个全排列,让判断是否可以通过这个生成器产生. 生成器工作方式: 第i步为数字i寻找位置pos. 首 ...

  4. pthon-安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示“This application failed to start because no Qt platform plugin could be initialized.Reinstalling the application the application may fix this program”

    最近学习python,安装网上教程一步一步的安装,网上很多帖子都写的非常详细,不由深深感慨多谢各位不辞辛苦的记录,指导着来自新入门的同学. 但是实际安装中,最理想莫过于一次性安装成功,但自己安装就出现 ...

  5. C# -- WebClient自动获取web页面编码并转换

    C# -- WebClient自动获取web页面编码并转换 抽个时间,写篇小文章,最近有个朋友,用vb开发一个工具,遇到WebClient获取的内容出现乱码,可惜对vb不是很熟悉,看了几分钟vb的语法 ...

  6. jbpm4 泳道

    今天刚学习了jbpm4的泳道使用,方便以后查阅记录一下! 泳道定义: <swimlane name="myswim" assignee="userC"&g ...

  7. jbpm4.4 timer的使用

    今天学习了jbpm4 的timer使用,一直测试都不成功:配置如下: <?xml version="1.0" encoding="UTF-8"?> ...

  8. 第三篇:ASR(Automatic Speech Recognition)语音识别

    ASR(Automatic Speech Recognition)语音识别: 百度语音--语音识别--python SDK文档: https://ai.baidu.com/docs#/ASR-Onli ...

  9. Power安装linux-BIG ENDIAN mysql编译安装

    一.安装系统,不选择额外的软件 mkvdev -vadapter vhost0 -vdev hdisk2 -dev db_mysql01_sys mkvdev -vadapter vhost0 -vd ...

  10. select 下拉框样式修改 option文字居右

    select { direction: rtl; /*Chrome和Firefox里面的边框是不一样的,所以复写了一下*/ border: solid 1px #000; /*很关键:将默认的sele ...