总之;我在XML文件中生成了很多空行,并且我正在寻找一种方法将它们作为一种倾斜文件的方式来删除它们。我怎样才能做到这一点 ?如何从XML文件中删除多余的空行?

有关详细说明,目前,我有这个XML文件:

path1

path2

path3

path4

我用这个Java代码来删除所有标签,并添加新的来代替:

public void savePaths(String recentFilePath) {

ArrayList newPaths = getNewRecentPaths();

Document recentDomObject = getXMLFile(recentFilePath); // Get the element.

NodeList pathNodes = recentDomObject.getElementsByTagName("path"); // Get all nodes.

//1. Remove all old path nodes :

for (int i = pathNodes.getLength() - 1; i >= 0; i--) {

Element pathNode = (Element)pathNodes.item(i);

pathNode.getParentNode().removeChild(pathNode);

}

//2. Save all new paths :

Element pathsElement = (Element)recentDomObject.getElementsByTagName("paths").item(0); // Get the first node.

for(String newPath: newPaths) {

Element newPathElement = recentDomObject.createElement("path");

newPathElement.setTextContent(newPath);

pathsElement.appendChild(newPathElement);

}

//3. Save the XML changes :

saveXMLFile(recentFilePath, recentDomObject);

}

执行这种方法多次之后,我得到一个XML用正确的结果文件,但有许多空行的“路径”标签后的第一个“路径”标签之前,像这样:

path5

path6

path7

任何人知道如何解决这个问题?

-------------------------------------------编辑:添加getXMLFile(...),saveXMLFile(...)代码。

public Document getXMLFile(String filePath) {

File xmlFile = new File(filePath);

try {

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

DocumentBuilder db = dbf.newDocumentBuilder();

Document domObject = db.parse(xmlFile);

domObject.getDocumentElement().normalize();

return domObject;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

public void saveXMLFile(String filePath, Document domObject) {

File xmlOutputFile = null;

FileOutputStream fos = null;

try {

xmlOutputFile = new File(filePath);

fos = new FileOutputStream(xmlOutputFile);

TransformerFactory transformerFactory = TransformerFactory.newInstance();

Transformer transformer = transformerFactory.newTransformer();

transformer.setOutputProperty(OutputKeys.INDENT, "yes");

transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");

DOMSource xmlSource = new DOMSource(domObject);

StreamResult xmlResult = new StreamResult(fos);

transformer.transform(xmlSource, xmlResult); // Save the XML file.

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (TransformerConfigurationException e) {

e.printStackTrace();

} catch (TransformerException e) {

e.printStackTrace();

} finally {

if (fos != null)

try {

fos.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

2012-10-01

Brad

+0

这可能是有益的,看看你的saveXMLFile方法的内容。 –

+0

@Markus ...当然,我编辑了这个问题。 –

+1

您可以看看[使用Java删除XML中的节点和空行](http://techxplorer.com/2010/05/24/deleting-nodes-and-empty-lines-in-xml-using-java /)和http://stackoverflow.com/questions/7190639/remove-all-blank-spaces-and-empty-lines –

java dom4j 去除空行_如何从XML文件中删除多余的空行?相关推荐

  1. java 去掉pdf文字_如何从PDF文件中删除所有图像/图纸,并仅在Java中留下文本?

    我在类似的情况下使用Apache PDFBox. 要更具体一点,请尝试这样的事情: import org.apache.pdfBox.exceptions.COSVisitorException; i ...

  2. java+读取source资源_如何从JavaJAR文件中读取资源文件?

    如何从JavaJAR文件中读取资源文件? 我试图从一个单独的JAR文件中访问一个XML文件,这个JAR是作为桌面应用程序运行的.我可以获得我需要的文件的URL,但是当我将它传递给FileReader( ...

  3. java dom4j读写xml_Java:简单的读写XML文件之使用DOM4J读写

    File file = new File("D:\\chengmuzhe\\java\\JavaOOP6.0\\students.xml"); SAXReader reader = ...

  4. java中修改xml文件内容_修改所有xml文件中的某些内容

    我的需求是:将所有项目的pom.xml中的ip地址替换 package com.company; import org.dom4j.Document; import org.dom4j.Documen ...

  5. java生成xml 换行符_如何在XML文件中添加换行符(换行符)?

    甲换行符(又名行中断或结束时的线,EOL)是标记文本行的末尾特殊字符或字符序列.所使用的确切代码因操作系统而异:LF:    Unix CR:    Mac OS up to version 9 CR ...

  6. xml文件中删除根节点

    //删除根节点 TiXmlDocument *myDocument = new TiXmlDocument(filefullPath.c_str()); myDocument->LoadFile ...

  7. XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 查找校验xml文件中相同的节点属性值 java遍历文件夹解析XML

    XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 以及查找xml文件中相同的节点属性值 项目背景:这是本人实习中所碰到的项目,当时感觉很棘手, ...

  8. java面试(二十五)--(1)redis为什么读写速率快性能好(2)说说web.xml文件中可以配置哪些内容(3)和的区别(4)扑克牌顺子

    1. redis为什么读写速率快性能好? 1.Redis将数据存储在内存上,避免了频繁的IO操作 2.Redis其本身采用字典的数据结构,时间复杂度为O(1),且其采用渐进式的扩容手段 3.Redis ...

  9. 利用dom4j取出XML文件中的数据

    在我们做项目的时候会经常用到XML文件用来配置系统,XML让系统更加的具有了灵活性,Java如何从XML中取出我们想要的数据呢?下面是我利用DOM4J来实现取出XML文件中的数据. XML文件: &l ...

最新文章

  1. 清华团队最新成果:可致特朗普能咏比特币,AI写古诗“更上一层楼”
  2. Jenkins+Gradle+Git自动打apk包,并上传到ftp
  3. 96D - Police Stations
  4. 微软 Excel 365 里如何设置下拉菜单和自动高亮成指定颜色
  5. 一文读懂 AVL 树
  6. anaconda中的python如何进行关联分析_Anaconda、Miniconda、Conda、pip的相互关系
  7. 使用 jQuery Mobile 与 HTML5 开发 Web App (十) —— jQuery Mobile 默认配置与事件基础
  8. zs040蓝牙模块使用方法_如何使用车载蓝牙播放手机音乐的方法
  9. 数据库SQL语句解析
  10. 开发电脑应该是8核(8线)
  11. 由超高压的超导体猜测超导的真相
  12. web前端实战小游戏两则(附源码)
  13. android 100以内的随机数
  14. Android 11.0 app添加校验锁(输入密码才能进入app)
  15. 【云大会】之五《第七届云计算大会 Day1感受:喧嚣退潮、人气萎缩》
  16. SICP 习题2.61~2.62 排序表示的adjoin和union-set函数
  17. 《SpringSecurity in Action》四:Session共享下的Session并发控制问题
  18. 内网直播局域网直播校园直播播控系统如何建设
  19. java 加密方式_Get史上最优雅的加密方式!没有之一!
  20. ThinkPad T61安装win7下的指纹识别软件,解决E7210005问题

热门文章

  1. [CareerCup] 9.5 Permutations 全排列
  2. 共享一个简单的 Javacript Helper library
  3. AtlasControlToolkit.CascadingDropDownNameValue自定义用法
  4. 谈题库系统(Samplx)项目之进展
  5. 实时动态测量技术的不足与改进方法
  6. 用蛾子触角当天线,用气味导航!美国博士发明奇特生物技术无人机
  7. 学Python10大理由:功能多、资源多、挣钱多!
  8. 写给想转行机器学习深度学习的同学
  9. LNK1136报错解决方法
  10. JSON 对象和字符串对象的互转