使用XSLT,需要根据Condition选择子节点数据

时间:2017-02-02 22:53:04

标签: xml xslt

从下面的XML中,我需要在“wd:Box_Description”=“隐瞒联邦所得税”时选择“wd:Amount”。我有点困惑,如何根据XSLT中的条件选择所需的数据。 任何人都可以帮助我需要包含的XSLT代码。

=IF(COUNTIF(B1:B16,A17)>0,"True","false")

谢谢!

2 个答案:

答案 0 :(得分:0)

这样的事情应该有效。您需要先选择您的节点,然后才能在您的选择

中使用此代码
<xsl:if test="Box_Description = 'Federal income tax withheld' or Amount=">
  <!-- "if" stuff (there is no "else" here) -->
</xsl:if>


<xsl:choose>
  <xsl:when test="some Boolean condition">
    <!-- "if" stuff -->
  </xsl:when>
  <xsl:otherwise>
    <!-- "else" stuff -->
  </xsl:otherwise>
</xsl:choose>

PS:未测试语法可能会改变

建议通过一些XSLT教程了解详情

http://www.w3schools.com/xml/xsl_if.asp

To compare two elements(string type) in XSLT?

更新::

您可以使用XSLT模板应用模板概念来选择许多节点并过滤

参考https://stackoverflow.com/a/2775477/1481690了解一些例子

答案 1 :(得分:0)

  

如何根据需要选择所需的数据   XSLT中的条件。

您可以使用 predicate 选择它。在您的示例中,XPath表达式可能如下所示:

/wd:EFW2_Year_End_Worker_Filing_Data/wd:EFW2_Year_End_Worker_Box_Data[wd:Box_Description='Federal income tax withheld']/wd:Amount

但是,这需要将wd:前缀绑定到与输入XML中相同的命名空间。