兼容海康平台在address字段使用错误的<或>破坏xml结构的情况, #903
This commit is contained in:
parent
5d83a431bd
commit
47221e73a5
@ -199,7 +199,24 @@ public abstract class SIPRequestProcessorParent {
|
||||
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解析异常]: 愿文如下: \r\n{}", new String(bytesResult));
|
||||
logger.warn("[xml解析异常]: 愿文如下: 尝试兼容性处理");
|
||||
String[] xmlLineArray = new String(bytesResult).split("\\r?\\n");
|
||||
|
||||
// 兼容海康的address字段带有<破换xml结构导致无法解析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();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user