• 全部
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

操作XML文档的问题

cyp503 2009-01-14 02:40:26
有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#代码怎样写?
...全文
88 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
MAOGE1987 2009-01-14
[Quote=引用 7 楼 greatverve 的回复:]
在此 <node> <nodecode>2 </nodecode> </node>
insertAfter一个 <nodecode>1 </nodecode>
再把那两个添加到子结点,再删除。
xml不通,主要是几乎不用。
参考:
http://blog.csdn.net/greatverve/archive/2008/12/10/3490741.aspx
这里能简化常用操作。
[/Quote]
这个可以。UP
回复
Fibona 2009-01-14
string 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>
";
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();
回复
greatverve 2009-01-14
在此<node> <nodecode>2 </nodecode> </node>
insertAfter一个<nodecode>1 </nodecode>
再把那两个添加到子结点,再删除。
xml不通,主要是几乎不用。
参考:
http://blog.csdn.net/greatverve/archive/2008/12/10/3490741.aspx
这里能简化常用操作。
回复
cyp503 2009-01-14
[Quote=引用 4 楼 scjtswj 的回复:]
C# code

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 = do…
[/Quote]

立即试一试!
回复
sunhongliang100 2009-01-14
不太懂,up!
回复
scjtswj 2009-01-14

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);

回复
cyp503 2009-01-14
[Quote=引用 2 楼 zhuanshen712 的回复:]
这样的结构不会出问题吗?
[/Quote]

只是一个例程。
回复
zhuanshen712 2009-01-14
这样的结构不会出问题吗?
回复
cwmwss 2009-01-14
不会。学习下
回复
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2009-01-14 02:40
社区公告
暂无公告