From e163cf4d202e7fe8fb35e29999eeb53e4f525a71 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期四, 06 七月 2023 15:18:10 +0800 Subject: [PATCH] 兼容海康平台在address字段使用错误的<或>破坏xml结构的情况, #903 --- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java | 19 ++++++++++++++++++- 1 files changed, 18 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java index 0a7eb2c..d52f4f6 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java @@ -199,7 +199,24 @@ Byte[] bytes = new Byte[0]; byte[] bytesResult = ArrayUtils.toPrimitive(result.toArray(bytes)); - Document xml = reader.read(new ByteArrayInputStream(bytesResult)); + Document xml; + try { + xml = reader.read(new ByteArrayInputStream(bytesResult)); + }catch (DocumentException e) { + logger.warn("[xml瑙f瀽寮傚父]锛� 鎰挎枃濡備笅锛� \r\n{}", new String(bytesResult)); + logger.warn("[xml瑙f瀽寮傚父]锛� 鎰挎枃濡備笅锛� 灏濊瘯鍏煎鎬у鐞�"); + String[] xmlLineArray = new String(bytesResult).split("\\r?\\n"); + + // 鍏煎娴峰悍鐨刟ddress瀛楁甯︽湁<鐮存崲xml缁撴瀯瀵艰嚧鏃犳硶瑙f瀽xml鐨勯棶棰� + StringBuilder stringBuilder = new StringBuilder(); + for (String s : xmlLineArray) { + if (s.startsWith("<Address")) { + continue; + } + stringBuilder.append(s); + } + xml = reader.read(new ByteArrayInputStream(stringBuilder.toString().getBytes())); + } return xml.getRootElement(); } -- Gitblit v1.8.0