2009-12-15 15 views
20

Estoy tratando de escribir el siguiente elemento utilizando XmlWriterAdición de múltiples declaraciones de espacios en 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"> 

Tengo la primera declaración hecha usando

writer.WriteStartElement("kml", "http://www.opengis.net/kml/2.2"); 

¿Cómo puedo añadir el restante 3 declaraciones al mismo elemento?

Respuesta

33
writer.WriteAttributeString("xmlns","gx", null, "http://www.google.com/kml/ext/2.2"); 
writer.WriteAttributeString("xmlns","kml", null, "http://www.opengis.net/kml/2.2"); 
writer.WriteAttributeString("xmlns","atom", null, "http://www.w3.org/2005/Atom"); 

Conseguí eso de https://msdn.microsoft.com/en-us/library/cfche0ka(v=vs.100).aspx.

+0

Eres muy agradable, en realidad proporciona el código. –

+0

Gracias Ryan! Eso funciona. – etechpartner

0

Los espacios de nombres son simplemente atributos. Use los estándares para escribir atributos para el elemento.

0

La respuesta de Ryan B es incompleta como el espacio de nombres XML solamente se escribe como atributo pero no está registrado en la tabla de nombres, por lo que se producirá un error LookupPrefix conseguir prefijo de uno de los espacios de nombres XML, F.I. http://www.w3.org/2005/Atom. Devolverá null en su lugar atom.

Para escribir un atributo de espacio de nombres y obtener espacio de nombres de uso registrada

writer.WriteAttributeString("atom", 
          "http://www.w3.org/2000/xmlns/", 
          "http://www.w3.org/2005/Atom"); 

El uso de espacio de nombres http://www.w3.org/2000/xmlns/ registros también el prefijo en la tabla de nombres.

Cuestiones relacionadas