有xml文档<root>
<nodes>
<node><nodecode>1</nodecode></node>
<node><nodecode>2</nodecode></node>
<node><nodecode>3</nodecode></node>
<node><nodecode>4</nodecode></node>
</nodes></root>我想操作XML文档,在
<node><nodecode>2</nodecode></node>
<node><nodecode>3</nodecode></node>添加父节点nodes
也就是变成:
<root>
<nodes>
<node><nodecode>1</nodecode></node>
<nodes>
<node><nodecode>2</nodecode></node>
<node><nodecode>3</nodecode></node>
</nodes>
<node><nodecode>4</nodecode></node>
</nodes></root>请问c#代码怎样写?
<nodes>
<node><nodecode>1</nodecode></node>
<node><nodecode>2</nodecode></node>
<node><nodecode>3</nodecode></node>
<node><nodecode>4</nodecode></node>
</nodes></root>我想操作XML文档,在
<node><nodecode>2</nodecode></node>
<node><nodecode>3</nodecode></node>添加父节点nodes
也就是变成:
<root>
<nodes>
<node><nodecode>1</nodecode></node>
<nodes>
<node><nodecode>2</nodecode></node>
<node><nodecode>3</nodecode></node>
</nodes>
<node><nodecode>4</nodecode></node>
</nodes></root>请问c#代码怎样写?
解决方案 »
- socket网络编程一些问题
- 高分求:输入的时候声音提示
- 关于反射,程序集的问题
- 问两个问题(自定义Web控件问题和自己做web服务器)
- VS2005和VS.NET2005和Visual Studio 2005 Express Edition之间的关系
- ASP.NET控件问题,帮帮忙,在线等,急急急急急急急急
- 急:AspNetPager为什么把pagesize大于7的时候,后面的文本筐和提交按纽就看不见了,这是为什么??????
- DATAGRID里怎么把修改的数据更新到数据中,您能告诉我吗,谢谢?
- 有关于OleDB的问题(初级)
- .Net MVC 如何将某个页面使用Https连接
- 从网页上读过来的html代码显示在控制台上是乱码,这个怎么解决?
- .net 非正常的 CS1009: 无法识别的转义序列(在线等!)
XmlDocument doc = new XmlDocument();
string str = "<root><nodes>";
str += "<node><nodecode>1</nodecode></node>";
str += "<node><nodecode>2</nodecode></node>";
str += "<node><nodecode>3</nodecode></node>";
str += "<node><nodecode>4</nodecode></node>";
str += "</nodes></root>"; doc.LoadXml(str); XmlElement root = doc.DocumentElement; XmlNode node2 = root.SelectSingleNode("descendant::node[nodecode='2']");
XmlNode node3 = root.SelectSingleNode("descendant::node[nodecode='3']"); XmlNode nodes = root.FirstChild.CloneNode(false);
XmlNode newNode = root.FirstChild.InsertAfter(nodes, root.FirstChild.FirstChild); newNode.AppendChild(node2);
newNode.AppendChild(node3);
insertAfter一个<nodecode>1 </nodecode>
再把那两个添加到子结点,再删除。
xml不通,主要是几乎不用。
参考:
http://blog.csdn.net/greatverve/archive/2008/12/10/3490741.aspx
这里能简化常用操作。
<nodes>
<node> <nodecode>1</nodecode> </node>
<node> <nodecode>2</nodecode> </node>
<node> <nodecode>3</nodecode> </node>
<node> <nodecode>4</nodecode> </node>
</nodes> </root>
";
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.LoadXml(xml);
XmlNode node2 = doc.SelectSingleNode(@"/root/nodes/node[nodecode='2']");
XmlNode node3 = doc.SelectSingleNode(@"/root/nodes/node[nodecode='3']"); XmlNode parent = node2.ParentNode;
if (parent != null)
{
XmlNode newP = doc.CreateElement("nodes");
newP.AppendChild(node2);
newP.AppendChild(node3);
parent.InsertAfter(newP,parent.FirstChild);
} xml = doc.InnerXml.ToString();