有xml如下形式
<Request>
<State code="1">
<a>xxx</a>
<b>ccc</b>
</State>
</Request>
现有一字符串格式如<State code="2"><a>111</a><b>222</b></State>
如何用xml操作的方法把这个字符串作为子节点加到xml中去?
<Request>
<State code="1">
<a>xxx</a>
<b>ccc</b>
</State>
</Request>
现有一字符串格式如<State code="2"><a>111</a><b>222</b></State>
如何用xml操作的方法把这个字符串作为子节点加到xml中去?
{
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("XMLFile.xml"));//加载xml文件 XmlNode node = doc.SelectSingleNode("Request ");
XmlElement StateElement = doc.CreateElement("State");
StateElement.SetAttribute("code", "2"); XmlElement aElement = doc.CreateElement("a");
aElement.InnerText = "111";
StateElement.AppendChild(aElement); XmlElement bElement = doc.CreateElement("b");
bElement.InnerText = "222";
StateElement.AppendChild(bElement); node.AppendChild(StateElement);
doc.Save(Server.MapPath("XMLFile.xml"));
}
我是想一次性把这个字符串做为一个大节点加入,而不用去解析这个字符串,而且这个字符串是保证符合原XML节点规范的
如果解析字符串的话,挺麻烦的,特别是层次很多的XML......一种方式是把新的字符串包上一个原XML里父级节点的头,然后再生成一个node,然后加入原xml
这要比把原xml转化字符串方便点
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(filepath);
XmlDocumentFragment xmlfrag = xmldoc.CreateDocumentFragment();
xmlfrag.InnerXml ="<State code="2" ><a >111</a ><b >222</b ></State >"
xmldoc.DocumentElement.AppendChild(xmlfrag); //从根元素开始插入
xmldoc.Save(filepath);