Visual Basic 2012 Voorbeelden
   

visual basic 2012 broncode voorbeelden

Blijf op de hoogte van de recente aanpassingen op vbvoorbeelden!

Microsoft Visual Studio 2012Microsoft Developers Network - Visual BasicMicrosoft .NET Framework

31.7. XPath Dot

Print Email Deel op Twitter Deel op Facebook

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.

Tot nu toe hebben we steeds de waarde van (<xsl:value-of>) een childelement of een attribuut van de door de template gematchte entiteit of de door <xsl:for-each> geselecteerde element aan de output toegevoegd.  Hierbij hebben we dan expliciet de naam opgeven van het childelement of het attribuut waarvan we de waarde willen gebruiken in de output.
Het kan echter ook voorvallen dat je de waarde van het door de match of for-each geselecteerd element wil gaan toevoegen aan de output.
Dit is bijvoorbeeld mogelijk door in het select attribuut van een <xsl:value-of> element een dot (.) op te nemen.

Wensen we bijvoorbeeld bij volgende bron XML :
XML Instantie
<?xml version="1.0" encoding="utf-8"?>
<class>
  <student id="101">
    <name>John</name>
    <IQ>140</IQ>
  </student>
  <student id="102">
    <name>Jane</name>
    <IQ>130</IQ>
  </student>
  <student id="103">
    <name>Paul</name>
    <IQ>135</IQ>
  </student>
</class>
De namen van de studenten aan de output HTML toe te voegen :
HTML
<html>
  <head>
    <title>Class</title>
  </head>
  <body>
    <ul>
      <li>Jane</li>
      <li>John</li>
      <li>Paul</li>
    </ul>
  </body>
</html>
Dan kunnen we de XSLT als volgt opstellen :
XML Transformation
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" indent="yes"/>
  <xsl:template match="class">
    <html>
      <head>
        <title>Class</title>
      </head>
      <body>
        <ul>
          <xsl:for-each select="student/name">
            <xsl:sort select="."/>
            <li><xsl:value-of select="."/></li>
          </xsl:for-each>
        </ul>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>
Bemerk hier dus de select="." om aan te geven dat we de waarde van student/name zelf (of dus van de <name> childelementen van de <student> elementen willen selecteren.

Hier worden de namen overigens oplopend ("ascending") gesorteerd.  Je kan dit ook expliciet aangeven door in het <xsl:sort> element een order attribuut op te nemen met de waarde "ascending", al hoeft dit niet, omdat dit de default waarde is.

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.