У меня есть приложение NodeJS / Electron в качестве сервера-слушателя. IP-камера ANPR отправляет POST-запрос с информацией о тревоге на указанный сервер, затем я хочу, чтобы указанный сервер обрабатывал возврат XML.
Однако, поскольку в блоке есть текст и другие различные капли, возвращаемые в блоке, я Я нахожусь в точке, где я не уверен, что мне нужно сделать, чтобы очистить его. Я приложу копию тела запроса и свою функцию http.createServer
.
Все, что мне нужно, это часть XML, чтобы я мог проанализировать и продолжить работу.
HTTP-сервер function:
var port = 7200;
http.createServer((request, response) => {
const { headers, method, url } = request;
let body = [];
request.on('error', (err) => {
console.error(err);
}).on('data', (chunk) => {
body.push(chunk);
}).on('end', () => {
body = Buffer.concat(body).toString();
response.on('error', (err) => {
console.error(err);
});
console.log(body);
response.statusCode = 200;
response.end();
// END OF NEW STUFF
});
}).listen(port);
console.log(`Server listening on port ${port}`);
Это работает нормально, запросы поступают.
Это часть body
Я хотел бы проанализировать только XML из:
---------------------------7e13971310878\r\nContent-Disposition: form-data; name=\"anpr.xml\";filename=\"anpr.xml\";\r\nContent-Type: text/xml\r\nContent-Length: 2827\r\n\r\n
<EventNotificationAlert version=\"2.0\" xmlns=\"http://www.isapi.org/ver20/XMLSchema\">\r\n
<ipAddress>192.168.5.43</ipAddress>\r\n
<ipv6Address>::</ipv6Address>\r\n
<portNo>7200</portNo>\r\n
<protocol>HTTP</protocol>\r\n
<macAddress>98:df:82:37:1d:5e</macAddress>\r\n
<channelID>1</channelID>\r\n
<dateTime>2020-06-19T15:10:13+00:00</dateTime>\r\n
<activePostCount>2</activePostCount>\r\n
<eventType>ANPR</eventType>\r\n
<eventState>active</eventState>\r\n
<eventDescription>ANPR</eventDescription>\r\n
<channelName>ANPR Exit</channelName>\r\n
<ANPR>\r\n
<licensePlate>01MH8551</licensePlate>\r\n
<line>1</line>\r\n
<direction>forward</direction>\r\n
<confidenceLevel>99</confidenceLevel>\r\n
<plateType>unknown</plateType>\r\n
<plateColor>other</plateColor>\r\n
<licenseBright>112</licenseBright>\r\n
<pilotsafebelt>unknown</pilotsafebelt>\r\n
<vicepilotsafebelt>unknown</vicepilotsafebelt>\r\n
<pilotsunvisor>unknown</pilotsunvisor>\r\n
<vicepilotsunvisor>unknown</vicepilotsunvisor>\r\n
<envprosign>unknown</envprosign>\r\n
<dangmark>unknown</dangmark>\r\n
<uphone>unknown</uphone>\r\n
<pendant>unknown</pendant>\r\n
<tissueBox>unknown</tissueBox>\r\n
<label>unknown</label>\r\n
<decoration>unknown</decoration>\r\n
<plateCharBelieve>100,100,100,100,100,100,100,100</plateCharBelieve>\r\n
<speedLimit>0</speedLimit>\r\n
<illegalInfo>\r\n
<illegalCode>0</illegalCode>\r\n
</illegalInfo>\r\n
<vehicleType>truck</vehicleType>\r\n
<featurePicFileName>1</featurePicFileName>\r\n
<detectDir>0</detectDir>\r\n
<detectType>3</detectType>\r\n
<barrierGateCtrlType>0</barrierGateCtrlType>\r\n
<alarmDataType>0</alarmDataType>\r\n
<dwIllegalTime>0</dwIllegalTime>\r\n
<vehicleInfo>\r\n
<index>2</index>\r\n
<vehicleType>2</vehicleType>\r\n
<colorDepth>2</colorDepth>\r\n
<color>unknown</color>\r\n
<speed>0</speed>\r\n
<length>0</length>\r\n
<vehicleLogoRecog>0</vehicleLogoRecog>\r\n
<vehileSubLogoRecog>0</vehileSubLogoRecog>\r\n
<vehileModel>0</vehileModel>\r\n
</vehicleInfo>\r\n
<pictureInfoList>\r\n
<pictureInfo>\r\n
<fileName>licensePlatePicture.jpg</fileName>\r\n
<type>licensePlatePicture</type>\r\n
<dataType>0</dataType>\r\n
</pictureInfo>\r\n
<pictureInfo>\r\n
<fileName>detectionPicture_1.jpg</fileName>\r\n
<type>licensePlatePicture</type>\r\n
<dataType>0</dataType>\r\n
<vehicleHead>back</vehicleHead>\r\n
<redLightTime>0</redLightTime>\r\n
<absTime>20200619151013606</absTime>\r\n
<plateRect>\r\n
<X>29697</X>\r\n
<Y>59648</Y>\r\n
<width>17664</width>\r\n
<height>6400</height>\r\n
</plateRect>\r\n
</pictureInfo>\r\n
<pictureInfo>\r\n
<fileName>detectionPicture_2.jpg</fileName>\r\n
<type>licensePlatePicture</type>\r\n
<dataType>0</dataType>\r\n
<vehicleHead>back</vehicleHead>\r\n
<redLightTime>0</redLightTime>\r\n
<absTime>20200619151013608</absTime>\r\n
<plateRect>\r\n
<X>29697</X>\r\n
<Y>59648</Y>\r\n
<width>17664</width>\r\n
<height>6400</height>\r\n
</plateRect>\r\n
</pictureInfo>\r\n
</pictureInfoList>\r\n
</ANPR>\r\n
<UUID>fa41feec-1dd1-11b2-9e33-944acfe73596</UUID>\r\n
<picNum>3</picNum>\r\n
<monitoringSiteID></monitoringSiteID>\r\n
<deviceID>88</deviceID>\r\n
</EventNotificationAlert>
---------------------------7e13971310878\r\nContent-Disposition: form-data;name=\"licensePlatePicture.jpg\";filename=\"licensePlatePicture.jpg\";\r\nContent-Type: