Líos con .NET, XML, Prefijos y Namespaces

Problema: Estoy trabajando en .net con xml, usando para ello un objeto System.Xml.XmlDocument . El xml tiene unos prefijos delante del nombre de las etiquetas, y cuando intento operar con los nodos del documento me salen errores del tipo “Namespace Manager or XsltContext needed. This query has a prefix, variable, or user-defined function.”

Solución: Los prefijos se corresponden a espacios de nombres (namespaces) de xml. Para poder trabajar con ellos debemos declarar el namespace y agregarlo a un objeto XmlNameSpaceManager. Luego en los métodos, deberemos incluir este objeto como un parámetro más.

Ejemplo:
string mgrName = “http://miNamespace.com“;
XmlNamespaceManager mgr = new XmlNamespaceManager(new NameTable());
mgr.AddNamespace(“p”, mgrName); 

(donde “p” sería el prefijo de las etiquetas)

Etiquetas: , ,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: