gpt4 book ai didi

java - 使用 UTF-16 内容解码 xml 如何从 xml 文件底部删除特殊字符

转载 作者:行者123 更新时间:2023-12-02 03:35:41 27 4
gpt4 key购买 nike

我有一个 XML,其中包含一些我试图解码的 XML 数据,但 XML 文件的底部有一些特殊字符,并且其中包含我的一个问题并且抛出一个错误

**org.xml.sax.SAXParseException; systemId: Content is not allowed in trailing section.**

如果我尝试手动删除此字符,那么它对我来说效果很好。

但我的问题是如何使用运行时从文件中删除该特殊字符

我尝试了以下方式

enter image description here

JAXBContext jaxbContext = JAXBContext.newInstance(VariablePack.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();

InputStream is1= new FileInputStream("C:\\temp\\temop4.xml");

Reader reader = new InputStreamReader(is1);
SomeJavaClass someJavaClass = (SomeJavaClass) jaxbUnmarshaller.unmarshal(reader);

示例XML文件数据底部有一个特殊字符

<?xml version="1.0" encoding="UTF-16" standalone="no" ?>
<NewStudioVariablePack>
<projectName>ContextView_NG</projectName>
<threadID>100015</threadID>
<gSYSInstance>8</gSYSInstance>
<variablesList>
<contextVariables>
<variable>
<variableName>C.UserXML</variableName>
<variableType>B</variableType>
<variablePicture/>
<blobType/>
<value/>
</variable>
<variable>
<variableName>C.sys.RemoteUser</variableName>
<variableType>A</variableType>
<variablePicture>30</variablePicture>
<blobType/>
<value/>
</variable>
</contextVariables>
</variablesList>

</NewStudioVariablePack>

最佳答案

您可以尝试使用普通的 BufferedReader 逐行读取文件并跳过最后一行,但不建议解析 XML。只是为了看看你是否能用这种方式读出那个字符。

这个角色是如何到达那里的?也许您使用了错误的编码。

否则在解析代码周围设置一个 try/catch block ,这样至少不会崩溃。

关于java - 使用 UTF-16 内容解码 xml 如何从 xml 文件底部删除特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56863286/

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