xml文件的格式为
<?xml version="1.0" encoding="GBK"?> <CIBOFP> <HEAD> <APPCODE>111111</APPCODE> <BUSCD>1104</BUSCD> <EXSERIAL>75</EXSERIAL> <DATE>20150518</DATE> <TIME>183320</TIME> </HEAD> <BODY> <CREDITAPPID>75</CREDITAPPID> <MORTGAGORNO>借款人编号</MORTGAGORNO> <MORTGAGORNAME>借款人名名</MORTGAGORNAME> <STATUS>2</STATUS> <LIMITLIST> <LIMIT> <FINANCINGTYPE>1</FINANCINGTYPE> <AMOUNT>100000</AMOUNT> </LIMIT> <LIMIT> <FINANCINGTYPE>1</FINANCINGTYPE> <AMOUNT>200000</AMOUNT> </LIMIT> <LIMIT> <FINANCINGTYPE>1</FINANCINGTYPE> <AMOUNT>300000</AMOUNT> </LIMIT> </LIMITLIST> <REMARK>备注</REMARK> </BODY> </CIBOFP>
java的解析方法
import java.io.FileInputStream; import java.io.InputStream; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; /** * 测试使用java自带的xml解析器 * @author test */ public class TestDomParse { public static void main(String[] args) { DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance(); String filename = "E:\\workspaceeclipse\\common-xingye\\src\\main\\resources\\1004.xml"; try { //产生解析实例 DocumentBuilder dombuilder = domfac.newDocumentBuilder(); //把XML文件读入放在FileInputStream中,并用其父类InputStream的实例接受 InputStream is = new FileInputStream(filename); //根据输入XML文件流解析成Document结构,供下面遍历与操作使用 Document doc = dombuilder.parse(is); //获取根结点CIBOFP Element root = doc.getDocumentElement(); System.out.println(root.getTagName()); //System.out.println(root.getTextContent()); NodeList head= root.getElementsByTagName("HEAD"); Node body= root.getElementsByTagName("BODY").item(0); //HEAD 的解析 System.out.println(head.item(0).getNodeName()+"的解析开始"); for(int i=0;i<head.getLength();i++){ Node n = head.item(i); //System.out.println(n.getNodeName()+" "+n.getTextContent()); NodeList headNodeList = n.getChildNodes(); for(int j=0;j<headNodeList.getLength();j++){ Node hn = headNodeList.item(j); //使用hn.getNodeType()==Node.ELEMENT_NODE 防止打印空白 if(hn.getNodeType()==Node.ELEMENT_NODE){ System.out.println(hn.getNodeName()+" "+hn.getTextContent()); } } } //BODY的解析 System.out.println(body.getNodeName()+"的解析开始"); NodeList bodyList = body.getChildNodes(); for(int a=0;a<bodyList.getLength();a++){ Node n2 = bodyList.item(a); //防止打印空白 //System.out.println(n.getNodeName()+" n type "+n.getNodeType()); if(n2.getNodeType()==Node.ELEMENT_NODE){ if(n2.getNodeName().equals("LIMITLIST")){ System.out.println(n2.getNodeName()+"节点解析"); //LIMITLIST 节点 NodeList limitList = n2.getChildNodes(); for(int b=0;b<limitList.getLength();b++){ Node limit = limitList.item(b); //防止打印空白 if(limit.getNodeType()==Node.ELEMENT_NODE){ System.out.println(limit.getNodeName()+"节点解析"); //LIMIT NodeList t = limit.getChildNodes(); for(int c=0;c<t.getLength();c++){ Node l = t.item(c); //防止打印空白 if(l.getNodeType()==Node.ELEMENT_NODE){ System.out.println(l.getNodeName()+" "+l.getTextContent()); } } } } }else{ System.out.println(n2.getNodeName()+" "+n2.getTextContent()); } } } } catch (Exception e) { e.printStackTrace(); } } }
解析还是比较费劲
相关推荐
除了Java自带的解析库,还有第三方库如JAXB(Java Architecture for XML Binding)用于对象与XML之间的映射,以及DOM4J、XOM等提供更高级别的接口,简化XML处理。 5. 实战应用: 在实际项目中,根据需求选择合适的...
1. DOM解析XML: DOM解析器将整个XML文档加载到内存中,构建一个树形结构,称为DOM树。这种解析方式允许开发者通过节点名称快速访问和修改XML文档的任何部分。在提供的代码示例中,首先创建`DocumentBuilderFactory`...
例如,使用DOM解析XML文件的简单步骤如下: ```java import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document; import java.io.File; public ...
本篇文章将详细探讨如何使用JDK自带的方法解析XML特定格式的字符串。 首先,我们需要了解JDK中处理XML的主要API,包括`javax.xml.parsers`包下的`DocumentBuilderFactory`和`DocumentBuilder`,以及`org.w3c.dom`包...
下面是一个简单的使用PULL解析器解析XML并显示内容在`TextView`上的步骤: 1. 引入必要的库:在Android项目中,`XmlPullParser`是内置的,无需额外导入库。 2. 创建`XmlPullParser`实例:通常,我们可以使用`...
Java中常用的解析XML的库有DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)。DOM将整个XML文档加载到内存中,形成一个树形结构,适合小型XML文档。SAX是事件驱动的解析器...
这里的dom.jar通常指的是Java自带的javax.xml.parsers包中的DOM解析器。Java标准版(JDK)提供了对DOM、SAX和DOM Level 3的内置支持。DOM解析器与JDOM类似,将整个XML文档加载到内存中形成一个树形结构,便于操作,...
XML解析有三种方式 1,DOM 通用性强,它会将XML文件的所有内容读取到内存中,然后使用DOM API遍历XML树、检索所需的数据;...Android自带的XML解析器,和SAX基本类似,也是事件驱动,不同的是PULL事件返回的是数值型
与Java自带的DOM解析器相比,DOM4J更加灵活和高效,特别是在处理大型XML文档时表现更佳。 #### 二、DOM4J创建XML文档 ##### 1. 创建DOM4J文档对象 首先需要创建一个`Document`对象,这是DOM4J的核心类之一,用于...
虽然Java自带的XML API已经很强大,但还有许多第三方库如DOM4J和JDOM提供了更高级的功能和更好的性能,开发者可以根据实际需求选择使用。 总结起来,Java XML API提供了全面的XML处理能力,涵盖了从解析到操作再到...
对于DOM,可以使用JDOM或Java自带的DocumentBuilderFactory;对于SAX,可以使用DefaultHandler。解析完成后,我们可以提取出所需信息,例如,提取XML中的所有书籍信息,包括书名和作者。 总结起来,这个"解析Xml&...
相比Java自带的DOM解析器,dom4j更轻量级,解析速度更快,且使用起来更为方便。 **1. 添加dom4j依赖** 在项目中使用dom4j之前,首先需要将dom4j的jar文件添加到项目的类路径中。如果你的项目是Maven项目,可以在pom...
以下是使用DOM解析XML的基本步骤: 1. 引入库:在Android项目中,需要导入`javax.xml.parsers`包。 ```java import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; ``` 2....
DOM解析器会将整个XML文档加载到内存中,形成一棵节点树,适合小规模的XML处理;而SAX解析器采用事件驱动模型,逐行读取XML,占用资源较少,适合处理大型XML文件。 在JSP中,我们可以使用JDK自带的`javax.xml....
除了Java自带的API外,还有一些第三方库如Apache Crimson、Apache Xerces等提供了更高效、易用的方式来处理XML文档。这些库通常提供了更为丰富的功能和更好的性能优化。 优点: - 功能强大,提供了更多高级特性。 -...
此外,如果你不希望使用DOM解析,还可以考虑使用SAX(Simple API for XML)或StAX(Streaming API for XML),它们都是更高效且节省内存的解析方式。 在项目中,如果自带的jar包(如mylib下的jar包)提供了额外的...
除了系统自带的解析器,还有如Apache的Pull解析库和Volley框架中的XmlPullParser工具,它们为XML解析提供了更方便的接口。 在Android UI开发中,JSON和XML通常与网络请求结合,用于获取服务器返回的数据。例如,...
本篇文章将详细介绍如何在Android平台上使用SAX方法解析XML文件。 首先,我们需要在Android项目中引入SAX解析器。Android SDK自带了SAX解析器,因此无需额外添加依赖库。接下来,我们将按照以下步骤来解析XML文件:...
三、第三方库:除了Java自带的API外,还有一些优秀的第三方库,如Apache的`XStream`,它提供了一种更简洁的方式来绑定XML和Java对象。使用`XStream`,只需简单地定义一个Java类并注解,就可以方便地进行XML和Java...