2017-12-12 3 views
-2

Ich bin neu in der XSLT-Sprache, ich versuche Code zu schreiben, der dynamische URLs zu Foto-Feld in meiner Liste zuweist. Meine Liste enthält Vorname, Nachname und Foto aller Mitarbeiter und Fotos sind in einem Ordner ("Datei: // Ordner/Unterordner/Nachname, Vorname.jpg). Basierend auf Vorname und Nachname sollte das entsprechende Foto dynamisch zum Fotofeld hinzugefügt werden. ichUm dynamische URLs zuzuweisen

-Code versucht:..

<xsl:template match="udt:Photo"> 
<xsl:for-each select="dnnGridItem"> 
<xsl:value-of select="udt:LastName" /> 
<xsl:value-of select="udt:FirstName" /> 
</xsl:for-each> 
<img border="0" alt="delete"> 
    <xsl:attribute name="src"> 
    <xsl:text>file://folder/subfolder</xsl:text> 
    <xsl:value-of select="file://foilder/subfoilder/?{LastName}, {FirstName}.jpg" /> 
    <xsl:text>.jpg</xsl:text> 
    </xsl:attribute> 
</img> 
</xsl:template> 

kann mir mit XSL-Code helfen

+0

Können Sie auch ein kleines (aber aussagekräftiges) Beispiel für die XML-Datei/Daten angeben, mit der Sie arbeiten? – AntonH

Antwort

0

Wie Sie alle Eingangsdaten nicht vorsah kann ich mein Beispiel vorschlagen in meinem Fall erforderlich Bilder sind in Pfad D:/Bilder wie folgt:

enter image description here

So Bilder hinzufügen ich als nächste XSL-Datei (photo.xsl), wie unten bin mit HTML:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
    <xsl:output method="html" /> 
    <xsl:template match="/Photo"> 
     <xsl:variable name="img.path" select="'file:///D:/images/'"/> 
     <html> 
      <body>        
       <xsl:for-each select="dnnGridItem"> 
        <xsl:variable name="img.name" select="concat(LastName, ', ', FirstName)"/> 
        <h2> 
         <xsl:value-of select="$img.name"/> 
        </h2> 
        <img border="0" alt="delete"> 
         <xsl:attribute name="src"> 
          <xsl:value-of select="concat($img.path, $img.name, '.jpg')"/> 
         </xsl:attribute> 
        </img> 
        <br/>    
       </xsl:for-each> 
      </body> 
     </html>   
    </xsl:template> 
</xsl:stylesheet> 

Dann Nachnamen und Vorname dynamisch <?xml-stylesheet type="text/xsl" href="photo.xsl"?> zur Eingabe von XML-Datei hinzufügen zu nehmen (input.xml) wie folgt:

<?xml-stylesheet type="text/xsl" href="photo.xsl"?> 
<Photo> 
    <dnnGridItem> 
     <FirstName>John</FirstName> 
     <LastName>Smith</LastName> 
    </dnnGridItem> 
    <dnnGridItem> 
     <FirstName>Kate</FirstName> 
     <LastName>Johnson</LastName> 
    </dnnGridItem>  
</Photo> 

Ergebnis:

  • Transformed Ergebnis:

<html> 
 
     <body> 
 
      <h2>Smith, John</h2> 
 
      <img border="0" alt="delete" src="file:///D:/images/Smith, John.jpg"><br> 
 
      <h2>Johnson, Kate</h2> 
 
      <img border="0" alt="delete" src="file:///D:/images/Johnson, Kate.jpg"><br> 
 
     </body> 
 
    </html>

  • Ergebnis, wenn offene XML (input.xml) Datei in Browser:

enter image description here

HINWEIS! input.xml - im selben Ordner mit photo.xsl.

Hoffe, es wird mit Ihrem Fall helfen.