Выражение, которое, я думаю, вы ищете, это ...
<xsl:when test="$payload/*[local-name()='Value']/@*[name()='i:type'] ='b:dateTime'">
Однако это не получится, если префикс пространства имен изменится, поэтому, возможно, вам следует сделать следующее:
<xsl:when test="$payload/*[local-name()='Value']/@*[local-name()='type'] ='b:dateTime'">
Но это может не дать правильных результатов, если у вас есть два атрибута с именем type
в другом пространстве имен. Единственное реальное решение - объявить пространство имен xmlns:i
в XSLT, тогда вы сделаете это:
<xsl:when test="$payload/*[local-name()='Value']/@i:type ='b:dateTime'">