我在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获取数据? –