c# – XmlWriter编写空xmlns
作者:互联网
我正在使用以下代码初始化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元素上的空xmlns?
– 重播如何改变以往的地板 –
如果我将命名空间放在地标的写入中,则将非元素添加到文档中.
解决方法:
我已通过使用以下代码创建文档来修复此问题(文档元素中没有名称空间)
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);
这是有效的,因为只有在保存的xml文件中才需要namespce.
标签:c,net,xml,xmlwriter 来源: https://codeday.me/bug/20190701/1342255.html