Announcement

Collapse
No announcement yet.

Xslt

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Xslt

    Habe folgendes xml in dem Unternehmen und Teile der Adresse gespeichert sind.

    Code:
    <result>
      <binding name="p">
         <uri>http://www.owl-ontologies.com/H2O.owl#BILLA</uri>
      </binding>
      <binding name="a">
          <uri>http://www.owl-ontologies.com/H2O.owl#Straße</uri>
      </binding>
    </result>
    <result>
       <binding name="p">
            <uri>http://www.owl-ontologies.com/H2O.owl#BILLA</uri>
       </binding> 
       <binding name="a">
    	<uri>http://www.owl-ontologies.com/H2O.owl#Wienerneudorf</uri>
       </binding>
    </result>
    Wenn ich das nun mit Template Match bearbeite bekomme ich natürlich folgende Tabelle:

    Billa | Straße
    Billa | Wienerneudorf


    Ich hätte aber gerne:

    Billa
    Straße
    Wienerneudorf

    Welcher Ansatz wäre hier möglich?

    mfG
    Andi

  • #2
    Das läuft auf eine Gruppierung hinaus (hier unter Annahme des übergeordneten Elements results gezeigt):
    Code:
    <xsl:key name="groupby" match="binding[@name='p']" use="uri"/>
    
    <xsl:template match="results">
    
      <xsl:for-each select="//result/binding[generate-id()=generate-id(key('groupby',uri)[1])]">
    
        <p><xsl:value-of select="substring-after(uri,'#')"/><br/>
    
        <xsl:for-each select="key('groupby',uri)">
          <xsl:value-of select="substring-after(following-sibling::binding[@name='a']/uri,'#')"/><br/>
        </xsl:for-each></p>
        
      </xsl:for-each>
    
    </xsl:template>
    Zuletzt editiert von Thomas Meinike; 25.06.2008, 14:31.

    Comment


    • #3
      Das hat sehr gut funktioniert. VIELEN DANK!!!!

      lg
      Andi

      Comment

      Working...
      X