C# 在SVG(XML)中的现有元素之后插入新元素
我想在现有元素之后插入一个元素。例如,在这个简单的XML文件中,我想在“defs”元素之后插入一个元素 当我运行代码时,XElements root和defs为null,因此自然是defs.AddAfterSelf(xE)行;抛出对象引用未设置错误C# 在SVG(XML)中的现有元素之后插入新元素,c#,svg,xml-parsing,C#,Svg,Xml Parsing,我想在现有元素之后插入一个元素。例如,在这个简单的XML文件中,我想在“defs”元素之后插入一个元素 当我运行代码时,XElements root和defs为null,因此自然是defs.AddAfterSelf(xE)行;抛出对象引用未设置错误 欢迎提供任何指导。尝试使用名称空间 var ns = _XML_Doc.Root.Name.Namespace; XElement root = _XML_Doc.Element(ns +"svg"); XElement defs = root.El
欢迎提供任何指导。尝试使用名称空间
var ns = _XML_Doc.Root.Name.Namespace;
XElement root = _XML_Doc.Element(ns +"svg");
XElement defs = root.Element(ns + "defs");
defs.AddAfterSelf(xE);
_XML_Doc.Root
.DescendantsAndSelf()
.Elements()
.Single(d => d.Name.LocalName == "defs")
.AddAfterSelf(xE);
或者忽略名称空间
var ns = _XML_Doc.Root.Name.Namespace;
XElement root = _XML_Doc.Element(ns +"svg");
XElement defs = root.Element(ns + "defs");
defs.AddAfterSelf(xE);
_XML_Doc.Root
.DescendantsAndSelf()
.Elements()
.Single(d => d.Name.LocalName == "defs")
.AddAfterSelf(xE);
什么是解析器类的构造函数中的
\u XML\u Doc
:\u XML\u Doc=XDocument.Load(\u FilePath);实际上,这导致它在XElement defs=root.Element(“defs”)行中爆炸;root也是空的,代码也是:/是的,我看到它被加载到了调试器中。啊!名称空间。每次都让我抓狂。现在就试试。很高兴能帮上忙