【问题标题】:XSL variable Xpath expression for boolean of two child elements in one select一次选择中两个子元素的布尔值的 XSL 变量 Xpath 表达式
【发布时间】:2012-11-25 17:57:50
【问题描述】:

为每个其他元素设置变量 this 的确切 XPath 表达式是什么。到目前为止,我在下面有变量,但我还需要知道数量大于 0 以停止进一步处理我可以一次选择吗?

XSL 到目前为止

<xsl:variable name="UM" select="LossPayment/Coverage[contains('UM',CoverageCd)]"/>
<xsl:if test="$UM">
         ....          
</xsl:if>

XML

  <Parent>
    <LossPayment>
       <Coverage>
           <CoverageCd>TL</CoverageCd>
       </Coverage>
       <LossPaymentAmt>
               <Amt>000009500</Amt>
       </LossPaymentAmt>
    </LossPayment>
    <LossPayment>
       <Coverage>
            <CoverageCd>UM</CoverageCd>
        </Coverage>
        <LossPaymentAmt>
             <Amt>1</Amt>
       </LossPaymentAmt>
    </LossPayment>
  </Parent>

【问题讨论】:

  • 考虑发布您想要为您提供的输入样本创建的结果样本,然后我们可以建议一种 XSLT 方法来实现它。我目前不确定您要检查哪种情况分别遇到哪个问题。
  • @MartinHonnen 如果 Parent 包含具有 CoverageCd = UM 的 LossPayment 并且该元素的 Amt 大于 0,则结​​果将是 UM = true。感谢观看
  • @MartinHonnen 我将使用结果来确定是否需要进一步处理

标签: xml xslt xml-parsing xslt-2.0 saxon


【解决方案1】:

这应该可行。

<xsl:if test="/Parent/LossPayment[Coverage/CoverageCd='UM' and LossPaymentAmt/Amt &gt; 0]">
   <!-- do whatever you want -->
</xsl:if>

【讨论】:

  • 谢谢,我正在尝试这样的事情,但无法弄清楚如何退出 Coverage 以检查同一节点上的 LossPayment。不错!
  • @JustinCox 实际上你不必 :)
猜你喜欢
  • 2011-11-06
  • 2013-03-03
  • 2020-01-02
  • 1970-01-01
  • 2015-04-29
  • 1970-01-01
  • 2011-03-18
  • 1970-01-01
  • 2021-12-18
相关资源
最近更新 更多