【问题标题】:How to check if node contains a specific value in xsl如何检查节点是否包含xsl中的特定值
【发布时间】:2017-11-29 12:27:16
【问题描述】:

这是我的 xml 文件:

    <MT_extension>
        <WebDescription xmlns="http://matalan.co.uk/DNArts/">WebDescription</WebDescription>
        <StyleDescription xmlns="http://matalan.co.uk/DNArts/">DVD Style</StyleDescription>
        <PriceStatus xmlns="http://matalan.co.uk/DNArts/">Markdown</PriceStatus>
    </MT_extension>

这是我的 xsl 代码:

<xsl:variable name="bMarkdownFlag">
  <xsl:if test="./MT_extension/PriceStatus = 'Markdown'">-1</xsl:if>
</xsl:variable>

我想检查这个 PriceStatus 是否是 Markdown 但它总是返回 false

【问题讨论】:

  • XSL 找不到 PriceStatus,因为在您的 XML 中,PriceStatus 具有分配给它的名称空间。您必须在 xsl 中添加命名空间声明。
  • false 是什么意思?

标签: xml xslt


【解决方案1】:

@hobbes 说过你必须在 XSLT 中声明命名空间,并在 xpath 表达式中使用例如

<xsl:variable name="bMarkdownFlag" xmlns:dna="http://matalan.co.uk/DNArts/">
    <xsl:if test="./MT_extension/dna:PriceStatus = 'Markdown'">-1</xsl:if>
</xsl:variable>

【讨论】:

  • 非常感谢!它有效!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-24
  • 1970-01-01
  • 1970-01-01
  • 2015-06-24
  • 1970-01-01
  • 1970-01-01
  • 2021-09-22
相关资源
最近更新 更多