我使用以下代码初始化一个xmldocument
XmlDocument moDocument = new XmlDocument();
moDocument.AppendChild(moDocument.CreateXmlDeclaration("1.0", "UTF-8", null));
moDocument.AppendChild(moDocument.CreateElement("kml", "http://www.opengis.net/kml/2.2"));
在随后的过程中,我使用以下代码向它写入一些值
using (XmlWriter oWriter = oDocument.DocumentElement.CreateNavigator().AppendChild())
{
oWriter.WriteStartElement("Placemark");
//....
oWriter.WriteEndElement();
oWriter.Flush();
}
当我保存文档时,这会给我以下xml
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Placemark xmlns="">
<!-- -->
</Placemark>
</kml>
如何去掉placemark元素上的空xmln?
--编辑以显示对Placemark编写方式的更改--
如果我将名称空间放在placemark的write中,则没有元素被添加到文档中。
最佳答案
我已通过使用以下代码创建文档(文档元素中没有命名空间)修复了此问题
XmlDocument moDocument = new XmlDocument();
moDocument.AppendChild(moDocument.CreateXmlDeclaration("1.0", "UTF-8", null));
moDocument.AppendChild(moDocument.CreateElement("kml"));
并使用以下代码保存它,以便在保存之前设置命名空间
moDocument.DocumentElement.SetAttribute("xmlns", msNamespace);
moDocument.Save(msFilePath);
这是有效的,因为namespce仅在保存的xml文件中是必需的。
关于c# - XmlWriter编写空的xmlns,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3235492/