Я пытаюсь создать XmlElement
и вставить его как sibling после существующего элемента. Вот существующий элемент:Невозможно вставить новый элемент в дерево XML
<!-- other XHTML precedes this -->
<p id="testElement">Test element</p>
<!-- other XHTML follows this -->
Документ содержит только один элемент p
как выше. Вот элемент я хочу добавить после p
элемента:
<div class=”CodeChar”>
<pre/>
</div>
Я хочу результирующая XHTML выглядеть следующим образом:
<!-- other XHTML precedes this -->
<p id="testElement">Test element</p>
<div class=”CodeChar”>
<pre/>
</div>
<!-- other XHTML follows this -->
Я использую следующие строки кода, чтобы получить ссылка на p
элемент и добавить DIV:
XmlElement selectedElement = null;
XmlNodeList elts = xmlDoc.GetElementsByTagName("p");
foreach (XmlElement elt in elts)
{
String val = elt.GetAttribute("id");
if (val.Equals("testElement"))
{
selectedElement = elt;
break;
}
}
if (selectedElement == null)
{
return;
}
XmlElement newDivElement = xmlDoc.CreateElement("div");
newDivElement.SetAttribute("class", "CodeChar");
XmlElement preNode = xmlDoc.CreateElement("pre");
newDivElement.AppendChild(preNode);
xmlDoc.InsertAfter(newDivElement, selectedElement);
Однако, последняя строка в коде выше дает исключение, которое говорит “The reference node is not a child of this node.”
Благодаря
Спасибо - работает отлично. Я понимаю, как это работает сейчас. –