将节点添加到XML

时间:2014-05-28 16:08:30

标签: c# xml json.net

我有一些JSON需要添加属性并转换为XML字符串。

我设法将转换为XML工作.....

answersJsonStr = '{"question1":"answer 1","question2":"answer b"}';

XNode node = 
    Newtonsoft.Json.JsonConvert.DeserializeXNode(answersJsonStr, "answersXml");
var answersXml = node.ToString();

这正确地生成了XML ....

<answersXml>
  <question1>answer 1</question1>
  <question2>answer b</question2>
</answersXml>

但是在添加房产时我完全迷失了。即我想补充一下来......

<answersXml>
  <question1>answer 1</question1>
  <question2>answer b</question2>
  <cardId>12334556789</cardId>
</answersXml>

我已经阅读了许多类似的问题,他们似乎建议我应该使用XElement作为它更简单。但我无法弄清楚如何将XNode转换为XElement。或许我可以直接反序列化到XElement。但我也无法弄清楚这一点。什么是最好的XML类型&#39;使用?

另外,我一直在读htis ...... http://msdn.microsoft.com/en-us/library/system.xml.linq.xnode_methods%28v=vs.110%29.aspx 但我无法从中找到很多东西。你会推荐哪些更好的文件?

1 个答案:

答案 0 :(得分:1)

JsonConvert.DeserializeXNode返回XDocument,因此只需使用适当的节点类型:

XDocument xdoc = JsonConvert.DeserializeXNode(answersJsonStr, "answersXml");

然后将元素添加到root:

xdoc.Root.Add(new XElement("cardId", 123456789));