我在C#下面的XML像這樣的標記:選擇使用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個paramFile和一個根,我需要弄清楚有多少個paramFile可以做root.paramFile.version或者root.paramFile [0] .version – cdub
你有使用Json.NET來解析XML的原因嗎?爲什麼不能直接從XML DOM獲取數據? –