请帮忙,我只是不知道如何确保空的 xmlns="" 永远不会显示在正在创建的文件中。
有一个代码,创建一个XML文件:
public void CreateKMLFile()
{
XNamespace aw = "http://www.opengis.net/kml/2.2";
XDocument xdoc = new XDocument();
XElement kml = new XElement(aw + "kml");
XElement document = new XElement("Document");
XElement name = new XElement("name", "Моя карта");
document.Add(name);
kml.Add(document);
xdoc.Add(kml);
xdoc.Save("Object_In_map.kml");
MessageBox.Show("Записал");
}
创建文件:
没有不断爬行的 xmlns="" 是必要的:
命名空间声明适用于所有嵌套元素。
您已经创建了一个
kml
具有命名空间的节点:aw + "kml
。在 xml 中,我们得到了<kml xmlns="http://www.opengis.net/kml/2.2">
.但是
Document
您创建了一个没有命名空间的节点。所以它不属于这个命名空间,所以它属于空命名空间。因此,它会自动添加到其中xmlns=""
。如果 xml 文件显示:
那么这意味着两个节点都没有前缀:
kml
并且Document
引用相同的命名空间。如果这就是您所需要的,那么解决方案是:
为所有元素添加命名空间
aw
。有一种更短的写xml创建形式:
建议使用它。
我推荐zvon.org 上的命名空间教程(单击此处的 Next 链接)。很好,颜色显示了哪些节点属于哪些名称空间。
我还想更正那里的格式……
啊哈,那里有一个正常格式的选项。