gpt4 book ai didi

java - 将 XML 文件转换为字符串,无需在 Java 中进行操作或优化

转载 作者:行者123 更新时间:2023-11-30 03:16:47 35 4
gpt4 key购买 nike

我在使用 JDOM2 来处理 XML 文件时遇到了一些问题。我想将 XML 文件转换为字符串,而不进行任何操作或优化。

这是我的 Java 代码:

SAXBuilder builder = new SAXBuilder();
File xmlFile = f;

try
{
Document document = (Document) builder.build(xmlFile);

xml = new XMLOutputter().outputString(document);

} catch (Exception e) {
System.out.println(e.getMessage());
}

return xml;

但是当我将字符串与原始 XML 文件进行比较时,我注意到一些变化。

原文:

<?xml version="1.0" encoding="windows-1252"?>
<xmi:XMI xmi:version="2.1" xmlns:uml="http://schema.omg.org/spec/UML/2.0" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:thecustomprofile="http://www.sparxsystems.com/profiles/thecustomprofile/1.0" xmlns:SoaML="http://www.sparxsystems.com/profiles/SoaML/1.0">

和字符串:

<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:SoaML="http://www.sparxsystems.com/profiles/SoaML/1.0" xmlns:thecustomprofile="http://www.sparxsystems.com/profiles/thecustomprofile/1.0" xmlns:uml="http://schema.omg.org/spec/UML/2.0" xmi:version="2.1">

所有变音符号(ä、ö、ü)也发生了变化。我会得到类似的结果:“�”而不是“ä”。

有什么办法可以阻止这种行为吗?

最佳答案

首先,正如其他人所说,您不应该使用任何 XML 处理。只需将文件作为文本文件读取即可。

其次,您的元音变音字符显示为“�”是由于使用了不正确的字符集(编码)。字符集错误可能出现在您的代码中,也可能出现在 XML 文件中。

原始 XML 文件包含 encoding="windows-1252",但 XML 以 UTF-8 以外的任何方式编码的情况并不常见,因此我怀疑该文件实际上是 UTF-8文件及其声称使用的编码不正确。

读取文件时尝试强制使用 UTF-8。无论如何,在将字节转换为文本时指定字符集是一个很好的做法:

String xml = new String(
Files.readAllBytes(xmlFile.toPath(), StandardCharsets.UTF_8));

关于java - 将 XML 文件转换为字符串,无需在 Java 中进行操作或优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32395751/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com