2012-11-22 7 views
34

Ich versuche, aufgrund dieses Fehlers SelectNode von XmlDocument Klasse und Mühe zu nennen:Namespace-Manager oder XsltContext benötigt. Diese Abfrage hat ein Präfix, eine Variable oder benutzerdefinierte Funktion

Namespace Manager or XsltContext needed. This query has a prefix, variable, or user-defined function.

Mein Code:

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); 
    } 

und 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> 

Antwort

41

Sie haben xsl Namespace XmlNamespaceManager hinzuzufügen:

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); 
+0

Dank Ria seine Arbeits –

+0

Thank you! Perfektes Beispiel für mich, alles funktioniert jetzt gut. – Andrew

2

Ich weiß, es ist eine alte Frage und beantwortet wurde, aber es könnte jemand hilfreich sein, die mit XmlNamespaceManager vermeiden will. Das Dokument von GetElementsByTagName verfahren werden kann, aber es braucht mehr Aufmerksamkeit, sollen Sie wussten bereits über die Struktur Ihrer XmlDocument:

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