Я хочу вставить элемент после существующего элемента.Например, в этом простом XML-файле я хочу вставить элемент после элемента «defs».
<?xml version="1.0" standalone="no"?>
<svg viewBox="0 0 790 790" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" stroke-linecap="round" stroke-linejoin="round" fill-rule="evenodd" xml:space="preserve" >
<defs >
<clipPath id="clipId0" >
<path d="M0,790 790,790 790,0 0,0 z" />
</clipPath>
</defs>
****I WANT TO INSERT MY NEW ELEMENT HERE
<g clip-path="url(#clipId0)" fill="none" stroke="rgb(0,0,0)" stroke-width="0.5" />
<g clip-path="url(#clipId0)" fill="rgb(0,255,0)" stroke="rgb(0,255,0)" stroke-width="0" >
<text transform="matrix(12.0023 0 -0 12.0023 130.206 546.583)" font-family="Arial,'sans-serif'" font-size="1.39636" >WORK REGION</text>
</g>
</svg>
Вот мой попытанный код c #:
public void AddBlackBackground(string xOrig, string yOrig, string xExt, string yExt )
{
XElement xE = new XElement("rect");
xE.Add(new XAttribute("x", xOrig));
xE.Add(new XAttribute("y", xOrig));
xE.Add(new XAttribute("width", xOrig));
xE.Add(new XAttribute("height", xOrig));
xE.Add(new XAttribute("style", "fill:black"));
XElement root = _XML_Doc.Root.Element("svg");
XElement defs = root.Element("defs");
defs.AddAfterSelf(xE);
}
Корень XElementsи defs равны нулю, когда я запускаю код, поэтому, естественно, строка defs.AddAfterSelf (xE);выдает ссылку на объект, не установленную ошибку.
Любое руководство приветствуется.