在指定标签处插入 XML 到 XML 文档

Insert XML to XML Document at specified tag

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

<Subject></Subject>

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

这将在 School 之后插入 Subject 元素。那么如何在特定路径插入。在本例中,在 ClassA 元素下。

请帮帮我。

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

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

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

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

如果要在特定的地方添加,枚举父节点和现有节点,然后使用InsertBefore:

XmlNode xNode = xmlRequest.SelectSingleNode("School/ClassA");
XmlNode siblingNode = xmlRequest.SelectSingleNode("School/ClassA/Students");
XmlNode newNode = xmlRequest.CreateNode(XmlNodeType.Element, "Subject", Nothing);
xNode.InsertBefore(xNode, xSibling);