2013-04-30 54 views
0

這裏是XML是貝因處理轉換XML項目的超鏈接使用XSL

<?xml version="1.0" encoding="UTF-8"?> 
<javancss> 
    <sourceFile name="D:\EM_Projects\javancssParser\src\old_code_complexity.xml"/> 
    <compareFile name="D:\EM_Projects\javancssParser\src\new_code_complexity.xml"/> 
    <summaryFile name="D:\EM_Projects\javancssParser\src\Summary.xml"/> 
    <packages /> 
    <functions /> 
    <objects /> 
</javancss> 

這裏是XSLT的片段去非常久遠它

<center><table border="1" cellspacing="5"> 
<tr> 
<th>File</th> 
<th>Path</th> 
<th>Link </th> 
</tr> 

<tr> 
<td>sourceFile</td> 
<td> <a> <xsl:value-of select="/javancss/sourceFile/@name" /> </a></td> 
<td> </td> 
</tr> 

<tr> 
<td>compareFile </td> 
<td><xsl:value-of select="/javancss/compareFile/@name" /> </td> 
<td> </td> 
</tr> 

<tr> 
<td>compareFile </td> 
<td><xsl:value-of select="/javancss/compareFile/@name" /> </td> 
<td> </td> 
</tr> 

</table> 
</center> 

我想要做的就是採取路徑(由每行中的第2列表示)並在第3列中放置超鏈接(分別在<td> </td>中,現在爲空)。什麼是相同的方式?

所有輸入將不勝感激。

回答

0

下面的XSLT

<?xml version="1.0" encoding="utf-8"?> 
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output indent="yes"/> 

    <xsl:template match="/"> 
     <center> 
      <table border="1" cellspacing="5"> 
       <tr> 
        <th>File</th> 
        <th>Path</th> 
        <th>Link </th> 
       </tr> 

       <xsl:apply-templates/> 
      </table> 
     </center>  

    </xsl:template> 

    <xsl:template match="javancss"> 
     <xsl:apply-templates mode="link-row" select="sourceFile"/> 
     <xsl:apply-templates mode="link-row" select="compareFile"/> 
     <xsl:apply-templates mode="link-row" select="summaryFile"/> 
    </xsl:template> 

    <xsl:template match="*" mode="link-row"> 
     <tr> 
      <td><xsl:value-of select="name()"/></td> 
      <td><xsl:value-of select="@name" /></td> 
      <td> 
       <a href="{@name}">link</a> 
      </td> 
     </tr>  
    </xsl:template> 

</xsl:transform> 

施加在給定的輸入文件

<?xml version="1.0" encoding="UTF-8"?> 
<javancss> 
    <sourceFile name="D:\EM_Projects\javancssParser\src\old_code_complexity.xml"/> 
    <compareFile name="D:\EM_Projects\javancssParser\src\new_code_complexity.xml"/> 
    <summaryFile name="D:\EM_Projects\javancssParser\src\Summary.xml"/> 
    <packages /> 
    <functions /> 
    <objects /> 
</javancss> 

產生以下輸出

<center> 
    <table border="1" cellspacing="5"> 
     <tr> 
      <th>File</th> 
      <th>Path</th> 
      <th>Link </th> 
     </tr> 
     <tr> 
      <td>sourceFile</td> 
      <td>D:\EM_Projects\javancssParser\src\old_code_complexity.xml</td> 
      <td> 
       <a href="D:\EM_Projects\javancssParser\src\old_code_complexity.xml">link</a> 
      </td> 
     </tr> 
     <tr> 
      <td>compareFile</td> 
      <td>D:\EM_Projects\javancssParser\src\new_code_complexity.xml</td> 
      <td> 
       <a href="D:\EM_Projects\javancssParser\src\new_code_complexity.xml">link</a> 
      </td> 
     </tr> 
     <tr> 
      <td>summaryFile</td> 
      <td>D:\EM_Projects\javancssParser\src\Summary.xml</td> 
      <td> 
       <a href="D:\EM_Projects\javancssParser\src\Summary.xml">link</a> 
      </td> 
     </tr> 
    </table> 
</center> 

注意的是:

  • 你可能不希望在用於數據行
  • 設定背景感興趣的節點相同的模板您的表頭,使您的XPath表達式更短,更易讀
  • 你可能是指概覽文件的最後一項