在 XmlWriter 中添加多个命名空间声明
我正在尝试使用 XmlWriter 写出以下元素
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
我已经使用
writer.WriteStartElement("kml", "http://www.opengis.net/kml/2.2");
How can I add the left 3 statements to the same element?完成了第一个声明
I am trying to write out the following element using XmlWriter
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
I've got the very first declaration done using
writer.WriteStartElement("kml", "http://www.opengis.net/kml/2.2");
How can I add the remaining 3 declarations to the same element?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
从 https://msdn.microsoft.com 获取/en-us/library/cfche0ka(v=vs.100).aspx。
Got that from https://msdn.microsoft.com/en-us/library/cfche0ka(v=vs.100).aspx.
Ryan B 的答案不完整,因为 XML 命名空间仅写为属性,但未在名称表中注册,因此,
LookupPrefix
将无法获取 XML 命名空间之一的前缀 fihttp://www.w3.org/2005/Atom
。它将返回null
而不是atom
。要编写命名空间属性并获取命名空间注册,请使用
使用命名空间
http://www.w3.org/2000/xmlns/
还会注册名称表中的前缀。The answer of Ryan B is incomplete as the XML namespace is only written as attribute but not registered in the name table, so
LookupPrefix
will fail getting prefix of one of the XML namespaces, f.i.http://www.w3.org/2005/Atom
. It will returnnull
insteadatom
.To write a namespace attribute and get namespace registered use
Use of namespace
http://www.w3.org/2000/xmlns/
registers also the prefix in name table.命名空间只是属性。使用编写元素属性的标准方法。
The namespaces are simply attributes. Use the standards means of writing attributes for the element.