Member 13801408 Ответов: 1

Извлечение XML-сообщения из строки


string msdg = "{"EventTimestamp":"2018-06-08 00:11:26,070", "Level":"INFO", "RouteId":"PubSubV2DistRoute",   
"ActivityTimestamp":"2018-06-07T23:13:50.363097Z", "SrcSys":"", "ShrActNr":"W0980X", "DtnCnyCd":"DE", "DtnFacMnm":"DESCK", "DtnSlicNr":"0445", "OrgCnyCd":"JP", "OrgFacMnm":"JPSHN", "OrgSlicNr":"1063", "IntSvcTypCd":"004", "ExtSvcTypCd":"012", "Message":"<?xml version="1.0" encoding="UTF-8" standalone="yes"?>"}


Что я уже пробовал:

Я хочу извлечь это xml-сообщение из следующей строки?

Заранее спасибо.

Maciej Los

xml-сообщение? Я не вижу ничего связанного с xml-данными вместо "xml-заголовка" (объявления)...

Richard Deeming

Много escape - символов, необходимых для этой строки! Плюс недостающая заключительная цитата и точка с запятой.

Любой:

string msdg = "{\"EventTimestamp\":\"2018-06-08 00:11:26,070\", \"Level\":\"INFO\", \"RouteId\":\"PubSubV2DistRoute\",   
\"ActivityTimestamp\":\"2018-06-07T23:13:50.363097Z\", \"SrcSys\":\"\", \"ShrActNr\":\"W0980X\", \"DtnCnyCd\":\"DE\", \"DtnFacMnm\":\"DESCK\", \"DtnSlicNr\":\"0445\", \"OrgCnyCd\":\"JP\", \"OrgFacMnm\":\"JPSHN\", \"OrgSlicNr\":\"1063\", \"IntSvcTypCd\":\"004\", \"ExtSvcTypCd\":\"012\", \"Message\":\"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"yes\\\"?>\"}";

Или:
string msdg = @"{""EventTimestamp"":""2018-06-08 00:11:26,070"", ""Level"":""INFO"", ""RouteId"":""PubSubV2DistRoute"",   
""ActivityTimestamp"":""2018-06-07T23:13:50.363097Z"", ""SrcSys"":"""", ""ShrActNr"":""W0980X"", ""DtnCnyCd"":""DE"", ""DtnFacMnm"":""DESCK"", ""DtnSlicNr"":""0445"", ""OrgCnyCd"":""JP"", ""OrgFacMnm"":""JPSHN"", ""OrgSlicNr"":""1063"", ""IntSvcTypCd"":""004"", ""ExtSvcTypCd"":""012"", ""Message"":""<?xml version=\""1.0\"" encoding=\""UTF-8\"" standalone=\""yes\""?>""}";

1 Ответов

Рейтинг:
0

Afzaal Ahmad Zeeshan

Во — первых, этот код не будет компилироваться так, как он есть, даже если вам удастся его скомпилировать-добавив @ в начале строки — вам нужно будет просто вызвать свойство Message и получите все, что вам нужно. Что в этом было слишком трудного?

dynamic obj = JsonConvert.DeserializeObject(msdg);

if(obj != null && obj.Message != null) {
    var xml = obj.Message;
    // use xml
}

У меня есть статья, которая описывает, как обрабатывать данные JSON в C# с помощью JSON.NET библиотека, пожалуйста, взгляните на эту статью, От нуля до героя в JSON с C#[^].