【发布时间】:2017-01-23 02:06:19
【问题描述】:
我正在尝试将节点添加到 xml 文件中。
XML 文件:
<Students>
<Student>
<Address> ... </Address>
<Grade> ... </Grade>
</Student>
...
</Students>
这是我所做的:
public XmlElement createNode(XmlDocument xmlDoc)
{
XmlElement trElement = xmlDoc.CreateElement("Descriptions");
XmlElement textElement = xmlDoc.CreateElement("Text");
textElement.SetAttribute("String", "Abcdef");
textElement.SetAttribute("Language", "ENG");
trElement.AppendChild(textElement);
return trElement;
}
public void doWork(string filePath)
{
XmlDocument fromXML;
fromXML = new XmlDocument();
fromXML.Load(filePath);
XmlNode fromRoot = fromXML.DocumentElement;
foreach (XmlNode node in fromRoot.ChildNodes)
{
if (node.ChildNodes[0].Name != "Descriptions")
{
var trElement = createNode(fromXML);
node.InsertBefore(trElement, node.ChildNodes[0]);
}
}
fromXML.Save(Console.Out);
}
上面的代码会将节点Descriptions 添加到每个Student。如何将节点 Descriptions 添加到 xml 树中更深的其他节点?当前循环遍历学生但未遍历,例如:Grade。
【问题讨论】:
-
嵌套的 for 循环不能完成这个例子的任务吗?
-
你能给我举个例子吗?
-
我想你可能需要在这里递归。
-
@Neel 是的,这也是我之前的想法,但我现在不知道如何实现它。
-
@Sam 我已经用 xpath 和嵌套 for 循环更新了答案(您可以根据自己的情况选择)