我的代码:
// 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--标签。
此致 艾蒂安
答案 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 = " ";
或其他一些内容 - 也许是评论?如果没有一些内容,这两种形式就完全相同了。
重新提出“标记”问题 - 这取决于您的意思......但XmlNode
有InsertBefore
和InsertAfter
- 只需找到您希望它与之相邻的节点并使用其中之一。
答案 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。