powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / сумма элементов и значение по умолчанию
3 сообщений из 3, страница 1 из 1
сумма элементов и значение по умолчанию
    #36441535
Фотография Referee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добрый день. есть xml формата

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
    
<balance>
      <group part="А">
        <type type="0">
          <bal acc="30109">
            <exch rub="933768" dbt="79" crd="264" />
            <rub   rub="452" dbt="45555" crd="874" />
          </bal>
          <bal acc="30220">
            <rub rub="8001" dbt="6" crd="0" />
          </bal>
          <bal acc="30232">
            <exch rub="291" dbt="0" crd="0" />
          </bal>
        </type>
      </group>
</balance>

требуется для каждого bal найти сумму exch/@rub + rub/@rub вся проблема в том что не факт что для каждого bal есть rub и exch
например при для bal acc="30220"
Код: plaintext
<xsl:value-of select="rub/@rub + exch/@rub"/>
вернет NaN так как нет элемента exch

вопрос можно ли как нибудт преобразовывать значения элемента в число с параметром по умолчапнию?
спасибо.
...
Рейтинг: 0 / 0
сумма элементов и значение по умолчанию
    #36441753
Edkonst2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Refereeдобрый день. есть xml формата

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
    
<balance>
      <group part="А">
        <type type="0">
          <bal acc="30109">
            <exch rub="933768" dbt="79" crd="264" />
            <rub   rub="452" dbt="45555" crd="874" />
          </bal>
          <bal acc="30220">
            <rub rub="8001" dbt="6" crd="0" />
          </bal>
          <bal acc="30232">
            <exch rub="291" dbt="0" crd="0" />
          </bal>
        </type>
      </group>
</balance>

требуется для каждого bal найти сумму exch/@rub + rub/@rub вся проблема в том что не факт что для каждого bal есть rub и exch
например при для bal acc="30220"
Код: plaintext
<xsl:value-of select="rub/@rub + exch/@rub"/>
вернет NaN так как нет элемента exch

вопрос можно ли как нибудт преобразовывать значения элемента в число с параметром по умолчапнию?
спасибо.

Может что-то типа:
<xsl:choose>
<xsl:when test="number(rub) and number(exch)"><xsl:value-of select="rub/@rub + exch/@rub"/></xsl:when>
<xsl:when test="number(rub)"><xsl:value-of select="rub/@rub"/></xsl:when>
<xsl:when test="number(exch)"><xsl:value-of select="exch/@rub"/></xsl:when>
<xsl:otherwise">0</xsl:when>

</xsl:choose>

Или присваивать переменной.
...
Рейтинг: 0 / 0
сумма элементов и значение по умолчанию
    #36441850
Фотография Referee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо.
сделал таким образом...

Код: plaintext
1.
2.
3.
4.
<xsl:decimal-format NaN="0"/>
...
...
<xsl:value-of select="format-number(./exch/@rub, '0.00') + format-number(./rub/@rub, '0.00')"/>
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / сумма элементов и значение по умолчанию
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]