gpt4 book ai didi

Java解析带有附加数据的xml文件

转载 作者:行者123 更新时间:2023-12-02 07:00:07 25 4
gpt4 key购买 nike

我有 xml 文件,如下所示:

<Header>
<Type>TestType</Type>
<Owner>Me</Owner>
</Header>
ĺß™¸Ű;?źÉćáţ¬=ńgăűßEŶáCórýjąŞŢđ·I_§Ä†ÉD¤ďsĂŢŘö¤xi¦Ö†5ÚPMáx^š‡âő

那些有趣的字母是二进制编码数据。

我在解析它时遇到了麻烦。我想做的就是读取 Type 和 Owner 节点的值以及 Header 之后的数据。这些数据可能很大。它基本上是 xml,后面附加了数据。 header 始终以 开头并以 结尾。其中子节点的数量可以改变

我尝试了简单的解析:

DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(f);

我得到的是:

com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 2 of 3-byte UTF-8 sequence.

最佳答案

为了能够被 XML 解析器处理,文件必须是 well formed以及可选的有效(后者需要针对描述预期标签格式的“模式”进行测试)。

在这种情况下,您的文档格式不正确:

$ xmllint --noout File1.xml
File1.xml:5: parser error : Extra content at the end of the document
ĺß™¸Ű;?źÉćáţ¬=ńgăűßEŶáCórýjąŞŢđ·I_§Ä†ÉD¤ďsĂ
^

我建议找到一些方法来去除有问题的字符,然后处理格式正确的 XML。例如,假设 XML 位于文件的前 4 个文件中:

head -n 4 File1.xml | xmllint --noout -

关于Java解析带有附加数据的xml文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16759232/

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