2017-06-28 3 views
0

Ich versuche, den airings/medifile/startTime-Wert eines Knotens mit mehreren Attributen zu erfassen.XSL Analysiere die multiplen Attributwerte eines Knotens

Hier ist ein Ausschnitt aus der XML:

<show epgId="DT523214136"> 
    <title>America Reframed</title> 
    <description>9-Man Teams for this a competitive Chinese-American sport prepare for the national championship in Boston.</description> 
    <airing channelId="129" duration="7200" sageDbId="6422008" startTime="2017-01-25T01:00:00.00Z"> 
     <manualRecord/> 
     <recordSchedule duration="7200" startTime="2017-01-25T01:00:00.00Z"/> 
     <mediafile duration="7200" sageDbId="6423032" startTime="2017-01-25T01:00:00.02Z" type="TV"> 
      <segmentList> 
       <segment duration="7200" filePath="E:\Record\AmericaReframed-6422008-0.mpg" startTime="2017-01-25T01:00:00.02Z"/> 
      </segmentList> 
     </mediafile> 
    </airing> 
</show> 

Hier ist, was ich habe. Ich bekomme keine Ausgabe für StartTime. Ich habe alles versucht, aber xsl ist verwirrend und geheimnisvoll für mich.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:user="urn:my-scripts"> 

<xsl:template match="/"> 
<html> 
<body> 
<h2></h2> 
    <table WIDTH="100%" border="1" style="font-family:arial; font-size: 13px;" > 
    <tr bgcolor="#9acd32"> 
     <th style="text-align:left">Title</th> 
     <th style="text-align:left">Description</th> 
      <th style="text-align:left">Category</th> 
     <th style="text-align:left">Date</th> 
    </tr> 
    <xsl:for-each select="sageShowInfo/showList/show"> 
    <xsl:sort select="category"/> 
    <xsl:sort select="title"/> 
    <tr> 
     <td width="30%"><xsl:attribute name="STYLE">color:A50F4B</xsl:attribute><xsl:value-of select="title"/>: <xsl:value-of select="episode"/></td> 
     <td><xsl:value-of select="description"/></td> 
     <td><xsl:value-of select="category"/> </td> 

<xsl:comment>this doesn't work: </xsl:comment> 
     <xsl:for-each select="airing"> 
       <td width="10%"><xsl:value-of select="substring(mediafile/startTime,1,10)"/></td> 
    </xsl:for-each> 
<xsl:comment>-------</xsl:comment> 

    </tr> 
    </xsl:for-each> 
    </table> 

</body> 
</html> 
</xsl:template> 
</xsl:stylesheet> 

Antwort

0

Attribut Referenzen mit @ Präfix, so soll es sein

...mediafile/@startTime... 
0

Diese Aussage versucht, den inneren Text eines Starttime Element wählen innerhalb des Mediadatei Element

<xsl:value-of select="substring(mediafile/startTime,1,10)"/> 

Stattdessen sollten Sie das startTime-Attribut des Mediadateielements auswählen:

<mediafile duration="7200" sageDbId="6423032" startTime="2017-01-25T01:00:00.02Z" ... 

So würde Ihre verwenden:

<xsl:value-of select="substring(mediafile/@startTime,1,10)"/> 
+0

Excellent. Das funktioniert. Ich verbrachte den Versuch, es herauszufinden. – user22998

Verwandte Themen