2011-10-20 10 views
5

Algunas otras preguntas han preguntado cómo usar Xpath para consultar documentos XML con un espacio de nombres predeterminado. La respuesta es usar un administrador de espacios de nombres para crear un alias para el espacio de nombres predeterminado y usar ese alias en tus xpaths.Averigüe el URI de espacio de nombres predeterminado de un documento XML en C#

Sin embargo, ¿qué pasa si no conoce el URI del espacio de nombres predeterminado de antemano? ¿Cómo lo encuentras en el documento XML?

+2

Theoratically, usted debe saber el espacio de nombres lo demás no tiene sentido analizar el archivo XML en el primer lugar. Prácticamente sé lo que quieres decir. ¿Qué mecanismo usas para analizar el XML? – Polity

+0

Estoy usando System.Xml.XmlDocument –

Respuesta

11
var doc = XDocument.Parse(myXml); 
XNamespace ns = doc.Root.GetDefaultNamespace(); 
3

Si está utilizando XmlDocument, se puede obtener el nombre por defecto marcando NamespaceURI del elemento raíz:

var document = new XmlDocument(); 
document.LoadXml("<root xmlns='http://java.sun.com/xml/ns/j2ee'></root>"); 
var defaultNamespace = document.DocumentElement.NamespaceURI; 
Assert.IsTrue(defaultNamespace == "http://java.sun.com/xml/ns/j2ee"); 
+0

Creo que esto no es correcto. 'document.DocumentElement.NamespaceURI' simplemente devuelve el espacio de nombres del elemento raíz. Este podría ser el espacio de nombres adjunto a algún prefijo en lugar del espacio de nombre predeterminado. P.ej. '' –

0

Sé que esto es un viejo tema, pero no tenía el mismo problema , utilizando la clase XmlDocument, ya que quería saber el espacio de nombres predeterminado y un espacio de nombres prefijado.

Pude obtener ambos espacios de nombres usando el mismo Método.

string prefixns = element.GetNamespaceOfPrefix("prefix"); 
string defaultns = element.GetNamespaceOfPrefix(""); 

esto parece funcionar para que obtenga ambos espacios de nombres en un XmlElement.

Editar: Este es un método XmlNode, por lo que también debería funcionar en Atributos

Cuestiones relacionadas