|  | @@ -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();
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 |