2012-03-20 3 views
1

XSL (및 해당 문제의 경우 XML)에 익숙하지 않지만 xml을 사용하여 각 행에 대해 XML을 단계별로 실행하여 한 줄에 필요한 선택 항목을 인쇄해야합니다 데이터. 내가 겪고있는 문제는 하나의 선택 (시간)이 다른 노드와 다른 노드에 있다는 것입니다. 원하는 출력을 얻기 위해 내가 무엇을해야 하는지를 아직 알 수 없습니다. 누군가가 나를 도와 상관 없어 경우에 여기 내 데이터와 스타일 시트는 다음과 같습니다하나의 행에 여러 노드의 XSL 도움말 인쇄 변수

XSL 스타일 시트

<?xml version="1.0" encoding="ISO-8859-1"?> 
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:template match="/"> 
    <html> 
    <body> 
    <h2>Storage IO</h2> 
    <table border="1"> 
    <tr bgcolor="#9acd32"> 
     <th>Time</th> 
     <th>Reads per Second</th> 
     <th>Writes per Second</th> 
     <th>KB Read per Second</th> 
     <th>KB Written per Second</th> 
     <th>Read Cache Hit %</th> 
     <th>Write Cache Hit %</th> 
     <th>Sequential Read %</th> 
     <th>Write Pending Tracks</th> 
    </tr> 
    <xsl:for-each select="/SymCLI_ML/Statistics/Request_Totals"> 
    <tr> 
     <td><xsl:value-of select="time"/></td> 
     <td><xsl:value-of select="r_per_second"/></td> 
     <td><xsl:value-of select="w_per_second"/></td> 
     <td><xsl:value-of select="kb_r_per_second"/></td> 
     <td><xsl:value-of select="kb_w_per_second"/></td> 
     <td><xsl:value-of select="r_cache_hit_pct"/></td> 
     <td><xsl:value-of select="w_cache_hit_pct"/></td> 
     <td><xsl:value-of select="sequential_r_pct"/></td> 
     <td><xsl:value-of select="wp_tracks"/></td> 
    </tr> 
    </xsl:for-each> 
    </table> 
    </body> 
    </html> 
</xsl:template> 
</xsl:stylesheet> 

XML 파일

<?xml version="1.0" standalone="yes" ?> 
<?xml-stylesheet type="text/xsl" href="totals.xsl"?> 
<SymCLI_ML> 
    <Statistics> 
    <time>Mon Mar 19 2012 15:24:53</time> 
    </Statistics> 
    <Statistics> 
    <time>Mon Mar 19 2012 15:25:04</time> 
    <Request> 
     <dev_name>0052</dev_name> 
     <pd_name>Not Visible</pd_name> 
     <r_per_second>0</r_per_second> 
     <w_per_second>0</w_per_second> 
     <kb_r_per_second>0</kb_r_per_second> 
     <kb_w_per_second>0</kb_w_per_second> 
     <r_cache_hit_pct>N/A</r_cache_hit_pct> 
     <w_cache_hit_pct>N/A</w_cache_hit_pct> 
     <sequential_r_pct>N/A</sequential_r_pct> 
     <wp_tracks>0</wp_tracks> 
    </Request> 
    <Request> 
     <dev_name>1AAF</dev_name> 
     <pd_name>Not Visible</pd_name> 
     <r_per_second>0</r_per_second> 
     <w_per_second>0</w_per_second> 
     <kb_r_per_second>0</kb_r_per_second> 
     <kb_w_per_second>0</kb_w_per_second> 
     <r_cache_hit_pct>N/A</r_cache_hit_pct> 
     <w_cache_hit_pct>N/A</w_cache_hit_pct> 
     <sequential_r_pct>N/A</sequential_r_pct> 
     <wp_tracks>0</wp_tracks> 
    </Request> 
    <Request> 
     <dev_name>1B2F</dev_name> 
     <pd_name>Not Visible</pd_name> 
     <r_per_second>0</r_per_second> 
     <w_per_second>0</w_per_second> 
     <kb_r_per_second>0</kb_r_per_second> 
     <kb_w_per_second>0</kb_w_per_second> 
     <r_cache_hit_pct>N/A</r_cache_hit_pct> 
     <w_cache_hit_pct>N/A</w_cache_hit_pct> 
     <sequential_r_pct>N/A</sequential_r_pct> 
     <wp_tracks>0</wp_tracks> 
    </Request> 
    <Request_Totals> 
     <r_per_second>1032</r_per_second> 
     <w_per_second>1309</w_per_second> 
     <kb_r_per_second>28003</kb_r_per_second> 
     <kb_w_per_second>19347</kb_w_per_second> 
     <r_cache_hit_pct>74</r_cache_hit_pct> 
     <w_cache_hit_pct>99</w_cache_hit_pct> 
     <sequential_r_pct>6</sequential_r_pct> 
     <wp_tracks>9994</wp_tracks> 
    </Request_Totals> 
    </Statistics> 
</SymCLI_ML> 

답변

0

사용해보십시오 중 하나

<td><xsl:value-of select="../time"/></td> 

또는

<td><xsl:value-of select="/*/Statistics[1]/time"/></td> 

검색하려는 값에 따라 <time> 값이 달라집니다.

+0

대단히 고맙습니다. 정말 고맙게 생각합니다. 문제가 해결되어 더 잘 이해할 수있었습니다. 아직도 배울 것이 많지만 도움에 감사드립니다. – desimus0019

+0

@ desimus0019 - 대단히 환영합니다. –