在C#中为XML文档创建父节点

时间:2009-03-23 08:52:24

标签: c# asp.net xml

我的代码:

// Read in Xml-file 
XmlDocument doc = new XmlDocument();
doc.Load("C:/Web.config");

XmlNode d = doc.SelectSingleNode("/configuration");
XmlNode MYNODE = doc.CreateNode("element", "connectionStrings", "");

//newParent.(childNode);
d.AppendChild(MYNODE);

//Saving the document
doc.Save("C:/Web.config");

我的Web.config中的MyOutput:

<connectionStrings />

我在Web.config中实际需要的输出:

<connectionStrings>

</connectionStrings>

我必须在代码中更改哪些内容才能获得正确的输出? 另外,如果我希望我的标签出现在另一个标签的上方,我该怎么办...说出我的--SharePoint--标签。

此致 艾蒂安

7 个答案:

答案 0 :(得分:2)

输出正确。由于connectionStrings标记中没有任何子元素,因此它会呈现为空标记。

<connectionStrings /><connectionStrings></connectionStrings>的含义相同。

如果要在特定节点之前插入标记,请使用InsertBefore方法:

XmlNode sharePoint = doc.SelectSingleNode("SharePoint");
XmlNode MYNODE = doc.CreateNode("element", "connectionStrings", "");

doc.InsertBefore(MYNODE, sharePoint);

答案 1 :(得分:1)

<ConnectionStrings>似乎都一样。 <connectionStrings /><connectionStrings></connectionStrings>.

没有区别

您可以使用AppendChild()InsertBefore()InsertAfter()方法定位您的节点。

答案 2 :(得分:1)

您可以在元素中添加一些空格文本吗?

MYNODE.InnerText = " ";

或其他一些内容 - 也许是评论?如果没有一些内容,这两种形式就完全相同了。

重新提出“标记”问题 - 这取决于您的意思......但XmlNodeInsertBeforeInsertAfter - 只需找到您希望它与之相邻的节点并使用其中之一。

答案 3 :(得分:1)

它们都是格式良好的xml格式。

但是,如果您向附加的子节点添加新的子节点,您将获得所需的内容。例如,只需在connectionstrings节点中添加一个空格:

XmlNode MYNODE = doc.CreateNode("element", "connectionStrings", "");
MYNODE.InnerText = " ";

这对连接字符串元素的实际使用没有影响..但输出将是您想要的。

答案 4 :(得分:0)

XmlNode root = doc.DocumentElement;
root.InsertAfter(connNODE, root.FirstChild);

这是我需要在onder中将节点放在正确的位置。 谢谢大家的帮助! 艾蒂安

答案 5 :(得分:0)

很抱歉很晚但不能回复这篇帖子:

XmlNode xNode = xDoc.CreateNode("element", "FundDetails", ""); // Parent node to insert
xDoc.InsertBefore(xNode, xDoc.ParentNode); // inserting parent node to existing XML document

答案 6 :(得分:0)

  

此代码可帮助父节点从数据库获取更多数据。

 XmlNode dataNode = doc.CreateNode(XmlNodeType.Element, "connectionstrings", null);
                 root.PrependChild(dataNode);
                for (int i = 1; i < root.ChildNodes.Count; i++)
                {
                    dataNode.AppendChild(root.ChildNodes[i]);
                    i--;
                }

如果您向附加的子节点添加新的子节点,您将获得所需的内容。例如,只需在连接字符串节点中添加NULL。