java - 通过 Java 读取 XML、替换文本和写入同一个 XML 文件

标签 java xml xalan

目前我正在尝试一些非常简单的事情。我正在通过 XML 文档查找我尝试替换它的某个短语。我遇到的问题是,当我读取行时,我将每一行存储到一个 StringBuffer 中。当我将它写入文档时,所有内容都写在一行中。

这是我的代码:

File xmlFile = new File("abc.xml")
BufferedReader br = new BufferedReader(new FileReade(xmlFile));
String line = null;
while((line = br.readLine())!= null)
{
    if(line.indexOf("abc") != -1)
    {
        line = line.replaceAll("abc","xyz");
    }         
    sb.append(line);                
}
br.close();

BufferedWriter bw = new BufferedWriter(new FileWriter(xmlFile));
bw.write(sb.toString());
bw.close();

当我更喜欢 sb.append 时,我假设我需要一个换行符,但不幸的是我不知道要使用哪个字符,因为“\n”不起作用。

提前致谢!

附言我认为必须有一种方法可以在我写入 XML 文件或其他内容后使用 Xalan 对其进行格式化。虽然不确定该怎么做。

最佳答案

readline 读取换行符之间的所有内容,因此当您写回时,显然换行符丢失了。这些字符取决于操作系统:windows 使用两个字符来换行,例如 unix 使用一个。要与操作系统无关,请检索系统属性“line.separator”:

String newline = System.getProperty("line.separator");

并将其附加到您的字符串缓冲区:

sb.append(line).append(newline);

关于java - 通过 Java 读取 XML、替换文本和写入同一个 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3187971/

相关文章:

java - 我应该在 MainActivity 中定义 SharedPreferences 吗?

java - 部署 Apache Camel 项目

java - 如何使用maven项目在JavaFX中生成可执行jar

ruby-on-rails - 如何使用 Net::HTTP::Post 将 XML 发布到 RESTFUL Web 服务?

Java 脚本 XSLT 错误 : For extension function, 找不到方法 java.lang.String。 ([ExpressionContext,] #STRING)

c++ - 使用 Apache Xalan C++ 库改进 XSL 翻译

java - 在底部导航 View 上多次点击时应用程序崩溃

android - 我如何在 Android XML 布局文件中使用 View 节点?

android - 如何准确地在按钮上显示 toast

java - 使用 Java 将 XSLT 与 import/include 语句合并