在指定标记处将XML插入XML文档

时间:2015-05-29 14:12:20

标签: c#-4.0 linq-to-xml

我正在处理XML,我想在XML标记下面插入父xml:

<Subject></Subject>

父XML

<School>
   <ClassB></ClassB>
   <ClassA>
      <Students>
      </Students>
   </ClassA>
</School>

希望最终输出为

<School>
   <ClassB></ClassB>
   <ClassA>
      <Subject></Subject>
      <Students>
      </Students>
   </ClassA>
</School>

尝试以下代码:

XmlDocument xmlRequest = new XmlDocument();
 xmlRequest.LoadXml(parentXML);
 XmlDocumentFragment xmlfrag = xmlRequest.CreateDocumentFragment();
 xmlfrag.InnerXml = xmlSubjects;
 xmlRequest.DocumentElement.InsertBefore(xmlfrag,  xmlRequest.DocumentElement.FirstChild);

这将在学校之后插入主题元素。那么如何在特定路径插入。在这种情况下,在ClassA元素下。

请在这里帮助我。

1 个答案:

答案 0 :(得分:0)

您需要使用GetElementByName或某种方法来获取ClassA节点:

div

然后将Subject添加为新的子节点:

XmlNode xNode = xmlRequest.SelectSingleNode("School/ClassA");

如果要在特定位置添加它,请枚举父节点和现有节点,然后使用InsertBefore:

XmlNode newNode = xmlRequest.CreateNode(XmlNodeType.Element, "Subject", Nothing);
xNode.AppendChild(newNode);