「java拆分超大xml」java 读取大文件,拆分成小文件
今天给各位分享java拆分超大xml的知识,其中也会对java 读取大文件,拆分成小文件进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、怎么通过JAva解析的方法把一个xml文件分成两个XML 用DOM模型
- 2、java生成大型XML文件,有什么好方法?
- 3、java分割xml类型的字符串
- 4、xml 文件很大怎么解析 java
- 5、java 编程问题,我有一个xml文件有点大,谁能写个解析效率高的代码?
- 6、Java如何处理XML大文件
怎么通过JAva解析的方法把一个xml文件分成两个XML 用DOM模型
解析出来的数据你放在不同的变量存放不就分成两个了吗?
如果你要把数据写入两个DOM再生成两个文件的话:
//实例化解析器
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
//创建Document对象
Document doc1 = builder.newDocument();
Document doc2 = builder.newDocument();
Element root1= doc1.createElement("name1");
Element root2 = doc2.createElement("name2");
再将这两个DOM生成文件不就行了吗?
有疑问请再问。。。。
java生成大型XML文件,有什么好方法?
如果是解析XML文档,XML文件大可以用SAX方式解析。
如果是生成XML文档,那么可以用拼字符串的方式,一边拼串一边写入文件。而不是在内存将整个XML树生成后再写入文件。
java分割xml类型的字符串
你可以搜索下dom4j解析xml 网上很多,例如:
public class TestDom4j {
20
21 public void readStringXml(String xml) {
22 Document doc = null;
23 try {
24
25 // 读取并解析XML文档
26 // SAXReader就是一个管道,用一个流的方式,把xml文件读出来
27 //
28 // SAXReader reader = new SAXReader(); //User.hbm.xml表示你要解析的xml文档
29 // Document document = reader.read(new File("User.hbm.xml"));
30 // 下面的是通过解析xml字符串的
31 doc = DocumentHelper.parseText(xml); // 将字符串转为XML
32
33 Element rootElt = doc.getRootElement(); // 获取根节点
34 System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称
35
36 Iterator iter = rootElt.elementIterator("head"); // 获取根节点下的子节点head
37
38 // 遍历head节点
39 while (iter.hasNext()) {
40
41 Element recordEle = (Element) iter.next();
42 String title = recordEle.elementTextTrim("title"); // 拿到head节点下的子节点title值
43 System.out.println("title:" + title);
44
45 Iterator iters = recordEle.elementIterator("script"); // 获取子节点head下的子节点script
46
47 // 遍历Header节点下的Response节点
48 while (iters.hasNext()) {
49
50 Element itemEle = (Element) iters.next();
51
52 String username = itemEle.elementTextTrim("username"); // 拿到head下的子节点script下的字节点username的值
53 String password = itemEle.elementTextTrim("password");
54
55 System.out.println("username:" + username);
56 System.out.println("password:" + password);
57 }
58 }
59 Iterator iterss = rootElt.elementIterator("body"); ///获取根节点下的子节点body
60 // 遍历body节点
61 while (iterss.hasNext()) {
62
63 Element recordEless = (Element) iterss.next();
64 String result = recordEless.elementTextTrim("result"); // 拿到body节点下的子节点result值
65 System.out.println("result:" + result);
66
67 Iterator itersElIterator = recordEless.elementIterator("form"); // 获取子节点body下的子节点form
68 // 遍历Header节点下的Response节点
69 while (itersElIterator.hasNext()) {
70
71 Element itemEle = (Element) itersElIterator.next();
72
73 String banlce = itemEle.elementTextTrim("banlce"); // 拿到body下的子节点form下的字节点banlce的值
74 String subID = itemEle.elementTextTrim("subID");
75
76 System.out.println("banlce:" + banlce);
77 System.out.println("subID:" + subID);
78 }
79 }
80 } catch (DocumentException e) {
81 e.printStackTrace();
82
83 } catch (Exception e) {
84 e.printStackTrace();
85
86 }
87 }
xml 文件很大怎么解析 java
可以考虑用java的nio来解析文件,nio除了异步的特性外,另外一大特性就是对付大文件
java 编程问题,我有一个xml文件有点大,谁能写个解析效率高的代码?
接下XML一般有两种方式,DOM和SAX,DOM是把xml文件一次性全解析到内存中,好处是随即读写速度快,缺点是xml文件大的时候特耗内存。SAX 是动态解析,是安装xml文件中的域来解析,不是全部都放在内存中。好处是内存占用小,缺点是不能随机读写。我在项目中xml达到20M,还是用DOM的方法,这是要注意内存泄露还有给vm开打的内存。
Java如何处理XML大文件
解析xml的方式方法有很多种
DOM方式解析XML
Dom解析是将xml文件全部载入到内存,组装成一颗dom树,然后通过节点以及节点之间的关系来解析xml文件,与平台无关,java提供的一种基础的解析XML文件的API,理解较简单,但是由于整个文档都需要载入内存,不适用于文档较大时。
2.SAX方式解析XML
基于事件驱动,逐条解析,适用于只处理xml数据,不易编码,而且很难同时访问同一个文档中的多处不同数据
3.JDOM方式解析XML
简化与XML的交互并且比使用DOM实现更快,仅使用具体类而不使用接口因此简化了API,并且易于使用
4.DOM4j方式解析XML
JDOM的一种智能分支,功能较强大,建议熟练使用
但是要注意你解析xml的场景,dom这种解析方式是吧整个文档加载到内存,解析、修改都比较方便,但是比较耗内存
sax方式基于事件驱动,解析不耗内存,
关于java拆分超大xml和java 读取大文件,拆分成小文件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-08,除非注明,否则均为
原创文章,转载请注明出处。