У меня есть следующий XML в C#, как так:Выбор маркера с помощью Json.NET и LINQ
string xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<!--PowerStats Table Model Paramter Template Ver 1.0 Created on 11/19/2013-->" +
"<paramFile version=\"1.0\" createdBy=\"PowerStats v1.0\">" +
" <DSNumber value=\"82\" />" +
"</parmFile>" +
"<paramFile version=\"2.0\" createdBy=\"PowerStats v2.0\">" +
" <DSNumber value=\"83\" />" +
"</parmFile>";
Затем я создать JSON для тестирования (который) работает отлично:
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
string jsonText = JsonConvert.SerializeXmlNode(doc).Replace("\"@", "\"");
Но используя JToken, как мне получить первую версию paramFile, а вторую - с кодом ниже? Я продолжаю получать нуль.
JToken token = JObject.Parse(jsonText);
string paramFile = (string)token.SelectToken("paramFile[0].version");
Response.Write(paramFile);
Я удивлен, что это не исключение, поскольку вы не имеете ни одного корневого элемента в XML. Вы пытались распечатать 'jsonText', чтобы посмотреть, как он структурирован? –
вы правы. И код работает, если есть 2 paramFiles с корнем вокруг них. Мне нужно выяснить, сколько paramFiles существует для root.paramFile.version или root.paramFile [0] .version – cdub
Есть ли причина, по которой вы используете Json.NET для синтаксического анализа XML? Почему вы не можете получить данные непосредственно из XML DOM? –