当前位置: 首页 > 知识库问答 >
问题:

JAXB解组导致SAXParser异常

沃侯林
2023-03-14

我试图解组xml导致saxparser异常,因为元素的值有一个未正确关闭的标记元素。这是我得到的,我必须处理的。

这里是示例xml-

<GetResultResponse>
  <ExecutionID>17716868</ExecutionID>
  <Device>STLMJWB</Device>
  <Status>Success</Status>
  <ResultSet>
    <Command>RTRV-ALM-ALL:STLMJWB0201000003FIS:ALL:<ctag=dq>;</Command>
    <CommandType>Raw</CommandType>
    <commandResult>Success</commandResult>
  <ResultSet>
</GetResultResponse>

上面的xml和其他字符串一起作为命令的值,标签没有正确关闭,导致以下异常-

[org.xml.sax.saxpasseeption;行号:1;列号:212;元素类型“ctag”后面必须跟有属性规范,”

将xml输入作为字符串阅读器提供给unMarshall

StringReader sr = new StringReader("ABOVE XML");
unmarshaller.unmarshal(sr);

我有两个类-一个用于GetResultResponse,另一个用于ResultSet。

我试图解决的事情-1。CharacterEscapeHandler-将此权限分配给解组器时出错,因为只有编组器接受此权限。2.XmlJavaTypeAdapter-解组在处理和从适配器返回值之前发生。3.BeforeUnmarshall-将listener设置为unmarshaller;为命令返回null。4.XmlMixed和XmlAnyElement-需要正确的结束标记。

如果你有任何疑问,请告诉我。提前感谢

共有1个答案

柳奇思
2023-03-14

当前的XML是无效的。您需要在此处正确转义文本内容:

<Command>RTRV-ALM-ALL:STLMJWB0201000003FIS:ALL:<ctag=dq>;</Command>

作为

<Command>RTRV-ALM-ALL:STLMJWB0201000003FIS:ALL:&lt;ctag=dq>;</Command>
 类似资料:
  • 我最近遇到了一个问题,我们的一个遗留应用程序依赖于UPS跟踪API。UPS更改了其通信协议以要求TLSv1。2.不幸的是,JDK1.6的最新公共版本似乎不支持此协议,因此我的选择是支付oracle支持合同或升级到JDK1.7。我升级到了1.7 我改变了项目的依赖关系,一切看起来都很好。当我尝试实际部署到应用程序服务器时,失败了,错误如下: com.sun.xml.bind.v2.runtime.I

  • 我尝试解组一个XML文件到一个对象。 我得到了这个错误: 我的解组过程如下所示: 我的XML实体看起来像: 我的XMLFile看起来像: 那么,我的解组过程出了什么问题?XML实体是用xjc创建的。 我也尝试了简单的xml文件/对象。这对我来说很好。

  • 我是不是忽略了什么?任何帮助,提示或其他资源将非常感谢。我搜索了无数的谷歌列表,但无法解决这个问题。

  • 我的旧书堆 spring boot 1.5.6 realease 我的目标 我试图将一些数据打印到jasper report中,所以我创建了一个rest控制器,我想从前端发送json数据,并通过jackson api将其解析到pojo列表中,然后使用JRDataBean来处理我的报告 我的密码 当按下打印按钮时,我正在使用ajax发送这个json数组,我从chrome控制台获得了这个json数组,

  • 我使用cxf的jaxb来解封xml请求。 我正在寻找一种验证输入xml请求的方法,我已经阅读了下面两篇关于验证的超级文章,但它们并不是我所需要的。 http://blog.bdoughan.com/2010/11/validate-jaxb-object-model-with-xml.html http://blog.bdoughan.com/2010/12/jaxb-and-marshalunm

  • 问题内容: 我正在尝试从以下站点显示游戏的标题和ID:http ://thegamesdb.net/api/GetGame.php?id =2 当我从以下URL解组时:http : //www.w3schools.com/xml/note.xml没关系,但这只是一个对象,而不是列表。所以我现在有问题。我正在阅读Google的一些教程和示例,并编写了以下代码: Data.java: Game.jav