Получение ошибки при использовании формата числа - NaN - PullRequest
0 голосов
/ 02 мая 2019

Я должен выбрать значение v1, совпадающее с V0, и (необходимо сделать 13-значное число, также удалите десятичную точку). Я получаю NaN.Пожалуйста, руководство.

XSLT:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
 xmlns:xs="http://www.w3.org/2001/XMLSchema" >

<xsl:output method="text" encoding="utf-8" />
<xsl:output omit-xml-declaration="yes" />
<xsl:param name="break" select="'&#xA;'" />
<xsl:template match="A">
          <xsl:value-of select="format-number(B[match = V0]/v1 * 100,'0000000000000')"/>
  </xsl:template>

ВХОД:

<A>
<B>
    <match>V0</match>
    <v1>34.56</v1>
</B>
<B>
    <match>V1</match>
    <v1>34.54</v1>
</B>

Ожидаемое - 0000000003456

Фактический - NaN

1 Ответ

1 голос
/ 02 мая 2019

Просто изменить

<xsl:value-of select="format-number(B[match = V0]/v1 * 100,'0000000000000')"/>

до

<xsl:value-of select="format-number(B[match = 'V0']/v1 * 100,'0000000000000')"/>

А остальное последует.

Вывод:

000000003456

Вы забыли поместить значение элемента в одинарные кавычки.

...