XSL为整个表行选择条件超链接

时间:2013-03-07 16:46:21

标签: xslt hyperlink

我想添加一个表格行的超链接,该表格行导航到两个网页之一,具体取决于是否为其中一个XML结果返回了值。我不确定我是否有语法问题或者这个逻辑是不可能的。

<xsl:for-each select="Rowset/Row">
  <tr>
    <xsl:attribute name="href">  
      <xsl:choose>   
        <xsl:when test="ID_PRODU_ORDER!=''">
          <xsl:value-of select="/XMII/CM/Molex/ProductionExecution/OrderPostConfirmationBox.irpt">
        </xsl:when>  
        <xsl:otherwise>
          <xsl:value-of select="/XMII/CM/Molex/ProductionExecution/MachineAssignNewOrderMobile.irpt">
        </xsl:otherwise>   
      </xsl:choose> 
    </xsl:attribute> 

    <td align="left">  
      <xsl:attribute name="id">  
      </xsl:attribute> 
      <xsl:value-of select="DS_MACHI" />
    </td> 

    <td align="left">
      <xsl:attribute name="id">
      </xsl:attribute>
      <xsl:value-of select="ID_PRODU_ORDER" />
    </td>

    <td align="left" >
      <xsl:attribute name="id">
      </xsl:attribute>
      <xsl:value-of select="NR_DAY_REMAI" />
    </td>
  </tr>
</xsl:for-each>

1 个答案:

答案 0 :(得分:0)

使用布尔检查确定字符串是否存在:

<xsl:variable name="order" select="boolean(ID_PRODU_ORDER)"/>

test.xml这样的单独文件中使用一对处理说明来存储真假URL:

<?xml version='1.0' encoding="iso-8859-1"?>
<root>
  <?_true /XMII/CM/Molex/ProductionExecution/OrderPostConfirmationBox.irpt?>
  <?_false /XMII/CM/Molex/ProductionExecution/MachineAssignNewOrderMobile.irpt?>
</root>

使用文档功能引用文件:

<xsl:variable name="href" select="document('test.xml')//processing-instruction(concat('_', $order) )"/>

<tr>
  <a href="{$href}">
    <td id="{DS_MACHI}"></td>
    <td id="{ID_PRODU_ORDER}"></td>
    <td id="{NR_DAY_REMAI}"></td>
  </a>
</tr>