DBachert: <xsl:for-each findet kein einziges Element

Hallo,

seit Stunden ärger ich mich jetzt schon mit dem problem herum, und als Neuling gehen mir langsam die Ideen aus...

Was ich möchte ist aus einer gegebenen XML Datei über ein bestimmtes Tag iterieren und ein Attribut auslesen, wenn ein anderes einen bestimmten Wert hat.
Das Problem bei der Sache ist aber, dass ich bei dem for-each kein Element finde...

Das ist die zu parsende XML. Gesucht werden soll über die rs:data jedes z:row, und dann jeweils den Text ausgeben, wenn das Attribut LOESUNGSREVELANT='true' ist.

<xml>  
   <s:Schema id='RowsetSchema'  xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882' xmlns:rs='urn:schemas-microsoft-com:rowset'  
 xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'>  
   <s:ElementType name='row' content='eltOnly'>  
   <s:AttributeType name='POSITION'><s:datatype dt:type='i2'  /></s:AttributeType>  
   <s:AttributeType name='VATERPOS'><s:datatype dt:type='i2'  rs:maybenull='false' /></s:AttributeType>  
   <s:AttributeType name='SUBPOSITION'><s:datatype dt:type='i2'  /></s:AttributeType>  
   <s:AttributeType name='ZIEL'><s:datatype dt:type='string' dt:maxLength='45' /></s:AttributeType>  
   <s:AttributeType name='QUELLE'><s:datatype dt:type='string' dt:maxLength='45' /></s:AttributeType>  
   <s:AttributeType name='SERVICEANFRAGE'><s:datatype dt:type='string' dt:maxLength='22' rs:maybenull='false' /></s:AttributeType>  
   <s:AttributeType name='TEXT'><s:datatype dt:type='string' dt:maxLength='2147483647' /></s:AttributeType>  
   <s:AttributeType name='DATUM'><s:datatype dt:type='dateTime'  /></s:AttributeType>  
   <s:AttributeType name='LOESUNGSRELEVANT'><s:datatype dt:type='string' dt:maxLength='5' rs:maybenull='false' /></s:AttributeType>  
   <s:extends type='rs:rowbase'/></s:ElementType></s:Schema>  
   <rs:data  xmlns:rs='urn:schemas-microsoft-com:rowset' xmlns:z='#RowsetSchema'>  
      <z:row POSITION="1" VATERPOS="1" QUELLE="Herr Peter Dammeier" SERVICEANFRAGE="00000023-001" TEXT="Lösungsrelevant" DATUM="2009-01-16T00:00:00" LOESUNGSRELEVANT="true" />  
   </rs:data>  
</xml>  
<P>  
  <FORM id=pickForm method=post target=_self></FORM>  
</P>

Derzeit versuche ich das mit dieser XSL:

<xml id=LoesungXML>  
   <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="http://www.p2plus.com" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">  
  <xsl:template match="/">  
   <xsl:text>TEST1</xsl:text>  
      <xsl:for-each select="*">  
            <xsl:text>TEST2</xsl:text>  
             <xsl:if test="@LOESUNGSRELEVANT='true'">  
             <xsl:text>TEST3</xsl:text>  
             <xsl:text>&#x000A;</xsl:text>  
             <xsl:value-of select="@TEXT" />  
             <xsl:text>&#x000A;</xsl:text>  
          </xsl:if>  
      </xsl:for-each>  
     </xsl:template>  
   </xsl:stylesheet>  
 </xml>

Wenn ich mir aber die generierte XML anschaue, erscheint da nur der XLS Header und das TEST1... TEST2 erscheint jedoch nie. Gehe ich von woanders aus als vom root, z.b. vom XML Tag im match, erhalte ich nichtmal das Test1...

  1. echo $begrüßung;

    seit Stunden ärger ich mich jetzt schon mit dem problem herum, und als Neuling gehen mir langsam die Ideen aus...

    Am besten probiert man das was nicht funktioniert mit einem ganz einfach gehaltenen, nachgestellten Beispiel. Du wirst sehen, dass es funktionieren wird. Wenn du dann das einfache Beispiel um deine Namespaces erweiterst ...

    echo "$verabschiedung $name";

  2. eine stylesheet startet immer mit dem stylesheet element als root element (nach der processing instruction zur deklarierung als xml)

    Also:

      
    <?xml version="1.0" encoding="UTF-8"?>  
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" ...>  
      
      
    </xsl:stylesheet>  
    
    

    Ebenso ist deine XML Quelle nicht sauber, da zum einen zwei root elemente vorsehen und zudem ist das:

    <P>
      <FORM id=pickForm method=post target=_self></FORM>
    </P>

    keine xml, da die attribute keine "" gesetzt.

    Gruss, H