0

我想添加一个超链接到一个表行,该行导航到两个网页之一,具体取决于是否为 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>
4

1 回答 1

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> 
于 2013-09-18T07:06:57.180 回答