兼容海康平台在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[] bytes = new Byte[0];
|
||||||
byte[] bytesResult = ArrayUtils.toPrimitive(result.toArray(bytes));
|
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();
|
return xml.getRootElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user