From c27e345edc6a92f485c1ef722ccaaa8ec6cbf5bf Mon Sep 17 00:00:00 2001
From: che_shuai <che_shuai@massclouds>
Date: 星期四, 13 七月 2023 10:22:42 +0800
Subject: [PATCH] 修复多级级联平台平台时,上级平台无法获取设备录像列表问题。问题详见  https://github.com/648540858/wvp-GB28181-pro/issues/914

---
 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