1

This is my xml file:

    <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>

and this is my xsl code:

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

I want to check if this PriceStatus is Markdown but it always return false.

  • 1
    Possible duplicate of [Xml Namespace breaking my xpath!](https://stackoverflow.com/questions/5239685/xml-namespace-breaking-my-xpath) – Hobbes Nov 29 '17 at 12:57
  • The XSL can't find PriceStatus because in your XML, PriceStatus has a namespace assigned to it. You'll have to add a namespace declaration to your xsl. – Hobbes Nov 29 '17 at 12:58
  • What do you mean by `false`? – friedemann_bach Nov 29 '17 at 13:29

1 Answers1

0

has @hobbes said you have to declare namespace in your XSLT, and use in xpath expression for example

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