gpt4 book ai didi

java - 解析xml文件错误

转载 作者:行者123 更新时间:2023-12-01 18:45:23 24 4
gpt4 key购买 nike

我正在尝试将 XML 文件转换为如下文档:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse("C:/xml/41111208890622000144550010000000011000003066-nfe.xml");
Document document = db.parse(new InputSource(new StringReader("C:/xml/41111208890622000144550010000000011000003066-nfe.xml")));

但它给出了错误消息:

Exception in thread "main" org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1;

有人知道该怎么做吗?

最佳答案

您当前正在创建一个包含字符串的阅读器

"C:/xml/41111208890622000144550010000000011000003066-nfe.xml"

并要求DocumentBuilder将其视为XML,但显然不是。 (我指的是第二个 parse 调用,我怀疑它是您实际代码中的调用。您提供的代码不会编译,因为您已声明 document 两次。)

您可以创建一个 FileInputStream 或围绕它的 InputStreamReader:

String filename = "C:/xml/41111208890622000144550010000000011000003066-nfe.xml";
try (FileInputStream input = new FileInputStream(filename))
{
Document document = db.parse(new InputSource(input));
}

(我更喜欢直接使用流,并让解析器检测编码。)

现在这个电话:

Document document = db.parse("C:/xml/...");

使用DocumentBuilder.parse(String)几乎可以工作并且可能实际上工作- 这取决于 parse 是否愿意将文件名作为 URI 处理。 (我见过一些 XML API 可以满足这一要求,而另一些则不行。)如果它不起作用,请尝试使用 file:// 方案:

Document document = db.parse("file://C:/xml/...");

关于java - 解析xml文件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17950755/

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