我试图解组 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.SAXParseException; 行号:1;列号:212;元素类型“ctag”必须后跟属性规范,“>”或“/>”。]
unmarshall 的 xml 输入作为字符串阅读器提供
StringReader sr = new StringReader("ABOVE XML");
unmarshaller.unmarshal(sr);
我有两个类 - 一个用于 GetResultResponse,另一个用于 ResultSet。
我试图解决的事情 - 1. CharacterEscapeHandler - 当我将这个属性分配给 Unmarshaller 时出错,因为只有 marshaller 接受这个。2. XmlJavaTypeAdapter - 在处理和从适配器返回值之前发生解组。3. BeforeUnmarshall - 设置监听器为解组器;为命令返回 null。4. XmlMixed 和 XmlAnyElement - 需要正确的结束标记。
如果您有任何疑问,请告诉我。提前致谢