valor obtener nodo net leer especifico c# xml xml-namespaces xmldocument

c# - obtener - Namespace Manager o XsltContext necesarios. Esta consulta tiene un prefijo, variable o funciĆ³n definida por el usuario



xpath c# (2)

Sé que es una pregunta antigua y ha sido respondida correctamente, pero podría ser útil para alguien que quiera evitar el uso de XmlNamespaceManager :

El documento puede ser atravesado por GetElementsByTagName pero necesita más atención, usted ya debe conocer la estructura de su xml:

var nodes = document.GetElementsByTagName("xsl:import"); var href = nodes[0].Attributes["href"];//be sure which node to take

SelectNode llamar a SelectNode desde la clase XmlDocument y XmlDocument problemas debido a este error:

Namespace Manager o XsltContext necesarios. Esta consulta tiene un prefijo, variable o función definida por el usuario.

Mi código:

public void Add(ref XmlDocument xmlFormat, String strName) { XmlDocument dom; XSLTemplate xsl = null; String strPath = ""; XmlNodeList nl; XmlAttribute na; int n; nl = (XmlNodeList)xmlFormat.SelectNodes("//xsl:import/@href",nsm); }

y xsl:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:import href="stylesheets/r_adresetiket.xsl" /> <xsl:template match="/"> <xsl:call-template name="retouradres"> <xsl:with-param name="_retouradres" select="data/adresetiket/_retouradres" /> <xsl:with-param name="minofdir" select="data/adresetiket/afzendgegevens/afzendgegevens" /> <xsl:with-param name="checked" select="data/adresetiket/LB" /> </xsl:call-template> </xsl:template> </xsl:stylesheet>


XmlNamespaceManager agregar el espacio de nombres xsl a XmlNamespaceManager :

var document = new XmlDocument(); document.Load(...); var nsmgr = new XmlNamespaceManager(document.NameTable); nsmgr.AddNamespace("xsl", "http://www.w3.org/1999/XSL/Transform"); var nl = document.SelectNodes("//xsl:import/@href", nsmgr);