partisan: param wert aus xml datei ziehen

Hallo,
ich habe in einer xml datei in einem Element ein Attribut definiert:

<document NS0:noNamespaceSchemaLocation="xxx_schulung.xsd"  
    xmlns:NS0="http://www.w3.org/2001/XMLSchema-instance">  
    <structure project="XXX80" version="1">  
    </structure>  
</document

Das Attribut project mit dem Wert XXX80

Jetzt möchte ich gern diesen Wert herausziehen mittels xslt aber irgendwie funktioniert das nicht:

<xsl:param name="project">  
	    <xsl:for-each select="document/structure">  
	     	<xsl:value-of select="@project"/>  
	    </xsl:for-each>  
</xsl:param>

vorher hab ich den paramter so gesetzt:

<xsl:param name="project">XXX80</xsl:param>

aber der Wert soll jetzt über die XML Datei gesetzt werden.

Was mach ich falsch?

  1. Hallo,

    ich habe in einer xml datei in einem Element ein Attribut definiert:

    <document NS0:noNamespaceSchemaLocation="xxx_schulung.xsd"

    xmlns:NS0="http://www.w3.org/2001/XMLSchema-instance">

    ^^^^^^^^^^^

    Jetzt möchte ich gern diesen Wert herausziehen mittels xslt aber irgendwie funktioniert das nicht:

    [code lang=xml]<xsl:param name="project">
        <xsl:for-each select="NSO:document/NSO:structure">

    ^^^^^^^^^^^^^^^^^^^^^^^^^^

    <xsl:value-of select="@project"/>
        </xsl:for-each>
    </xsl:param>

      
      
    
    > Was mach ich falsch?  
      
    Du solltest besonders auf die Namensräume achten.  
      
    Grüße  
    Thomas
    
    1. Hallo Thomas & partisan,

      »» ~~~xml

      <xsl:param name="project">

      »»     <xsl:for-each select="NSO:document/NSO:structure">
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^
      »»       <xsl:value-of select="@project"/>
      »»     </xsl:for-each>
      »» </xsl:param>

      
      >   
      >   
      > »» Was mach ich falsch?  
      >   
      > Du solltest besonders auf die Namensräume achten.  
        
      Die Elemente leben doch gar nicht im NSO-Namensraum, dieser referenziert nur das Schema. So funktioniert das bei mir problemlos (@partisan: Wozu das xsl:for-each?):  
        
      ~~~xml
      <?xml version="1.0" encoding="UTF-8"?>  
      <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
        
        <xsl:param name="project" select="document/structure/@project"/>  
        
        <xsl:template match="/">  
          <xsl:value-of select="$project"/>  
        </xsl:template>  
        
      </xsl:stylesheet>
      

      Ergebnis: XXX80

      Grüße
      Thomas

      Ebenso.

      1. Hallo,

        Die Elemente leben doch gar nicht im NSO-Namensraum, dieser referenziert nur das Schema.

        Ja, du hast natürlich recht.
        *argh, was für ein dummer Fehler*

        Grüße
        Thomas