Java解析、读取XML文件并存入TXT文件的简单例子
2018-01-16 10:04
549 查看
Java解析、读取XML文件并存入TXT文件的简单例子
XML文件的来源是通过集搜客在淘宝上爬取的客户评论信息,供同学作简单的文本聚类用。选取的是女装评论,因为考虑到女生对于服装的理解会比男生更加深刻、阅历更加丰富。XML文件的具体内容构造非常简单,如下图:XML文件的内容获取是采用DOM结点实现方法,XML文件的格式是类似于HTML的格式,DOM结点比较明显。获取item结点里的两个子节点中的内容,写入TXT文本,是本次学习的目的。关键语句为:
doc.getElementsByTagName("item").item(i).getFirstChild().getNodeValue();
使用Document返回一个包含文本的对象doc,用NodeList存放item结点的数据,返回nl对象,并用nl对象的长度作为遍历循环次数的阈值,来对每个item结点进行读取和转存。
另外还有其他三种方法我认为比较好的放在这里与大家分享,希望有所帮助,分别是:
1. DOM4j实现方法
2. JDOM实现方法
3. SAX实现方法
转自:java读取xml文件的四种方法
本次学习的目的是为了应同学的变态要求,将每个评论者的评论信息放在一个TXT文件里,所以需要用到File的构造方法和创建新文件的方法。
本次学习使用的是BufferWriter来写入文本,需要注意的是使用到了BufferWriter实例化对象bw的flush方法,为的是尽快的将缓冲区的数据“推入”目标文件,虽然bw的close方法最后也会处理,但是我的初衷是为了让数据不丢失,close仅用于关闭写入流。另外还有PrintWriter和FileWriter两个方法,具体例子也贴出来,转自:文件读写的方法
最后放入全部代码:
import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.NodeList; public class MyXMLReader2DOM { public static void main(String arge[]) { int sum = 0;//计数txt文件 for(int t = 1;t<=45;t++){//有45个xml文件 try { File f = new File("E:\\Documents\\实验室\\爬取数据\\淘宝评论文本\\comment\\淘宝商品评论"+t+".xml"); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(f); NodeList nl = doc.getElementsByTagName("item");//获得item里面的所有结点数据 //System.out.println(nl.getLength()); for (int i =1; i <=nl.getLength(); i++) { //System.out.print("评论者:"+ doc.getElementsByTagName("评论者").item(i).getFirstChild().getNodeValue()+"\n"); //System.out.println("评论文本:"+ doc.getElementsByTagName("评论文本").item(i).getFirstChild().getNodeValue().trim()); File ff = new File("E:\\Documents\\实验室\\爬取数据\\xmltotxt\\"+sum+1+".txt"); if(doc.getElementsByTagName("评论文本").item(i).getFirstChild().getNodeValue()!=null){ ff.createNewFile(); BufferedWriter bw = new BufferedWriter(new FileWriter(ff)); bw.write(doc.getElementsByTagName("评论文本").item(i).getFirstChild().getNodeValue().trim());//注意去除字符串首尾空格 bw.flush();//将缓冲区数据推入目标文件 bw.close(); sum++; System.out.println("写好了第"+sum+"个~");//计评论数 } } } catch (Exception e) { e.printStackTrace(); 8f5e } } } }
这次的代码仅用来理解读取XML文件的方法,所以写在了main函数里,其实严格来说,应当将新建文件、prase方法、写入数据分开来写,不过为了方便,就写在一块了。
另外,我个人能够优化的就是通过JFileChooser来人为选xml文件来解析,不知道能否选中多个xml文件。其次,我使用了Windows的DOS窗口和excel文件生成批量处理文件(xxx.bat)对xml进行批量重命名,这样我才能用for循环读取xml文件,看看以后能否有更好的方法。
写入TXT文件的方法比较容易实现,我的下一步计划是待小组成员爬完10万条新闻文章数据之后,存入MySQL数据库(存在疑惑:好多人在用oracle等等,不知道掌握哪个更加实用)。
编者注:
第一次写博客,也是为了在大三的阶段记录一下自己的成果,会比较基础,有什么错误或者改正优化的地方,希望大佬们不吝赐教!一直苦于没有老师指导,希望各位能够给予一点建议。一直有零碎的知识点会出现在平时的应用上面,之前没注意,过去就过去了,但是后来用的时候还得去翻收藏夹,现在想通过一些简单的例子自己写下来,既是一种总结,也是一种记录吧。
相关文章推荐
- java读取文件数据进行一些简单处理的例子
- Java读取txt文件和写入txt文件的简单实例
- Java解析txt文件中json数据到List<entity>,并存入数据库
- Java连接数据库+连续读取文件夹下txt文件+读取出txt文件后字符串简单分割连接处理+导入jar包
- 编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取text.txt文件内容,再通过键盘输入文件的名称为iodemo.txt,把text.txt的内容存入iodemo.txt
- jom写文件实现,jdom读取XML文件,解析某一element并改值存入文
- (二)Java解析XML:一个简单的解析XML文件的例子
- JAVA简单的zip文档 文件读取例子
- 利用Java的FileReader类读取文件内容的简单例子
- Java生成和解析XML格式文件和字符串的实例代码【dom4j中的SAXReader对象读取并解析xml文件】
- java读取文件数据进行一些简单处理的例子
- properties类读取.properties 、简单XML文件、txt文件
- 使用Java读取Word文件的简单例子分享
- java简单解析xls文件的方法示例【读取和写入】
- 利用JAVA/JSF/JSP实现读取并截取.txt文件http://zhidao.baidu.com/question/42189115.html
- 运用JAVA读取txt文件
- 用Ajax读取xml文件的简单例子
- Java读取一个目录(文件夹)下的文件例子
- silverlight动态读取txt文件/解析json数据/调用wcf示例
- Java 小例子:读取文件内容