Выделите первый элемент с условием в XSLT - PullRequest
0 голосов
/ 27 февраля 2020

Я ищу функцию, которая может выделить только строку из XML.

Например:

<DatabaseResult Result='Database transaction completed successfully.'>
<root>
<row Name='ABC1' Description='General 1' Quantity='1.000' UOM='ea' ID='1' Added='0'/>
<row Name='ABC2' Description='General 2' Quantity='1.000' UOM='ea' ID='2' Added='0'/>
<row Name='ABC3' Description='General 3' Quantity='1.000' UOM='ea' ID='3' Added='0'/>
</root>
</DatabaseResult>

У меня есть вышеупомянутый XML, и мне нужно чтобы отобразить эту информацию в таблице. Во-первых, мне нужно выделить только первую строку. После выделения первой строки и выполнения действия свойство «Added» будет обновлено со значения 0 на значение 1

. Файл XML будет обновлен новым значением /

После этого рабочий процесс повторно входит в этот XML, используя XSLT и показывает таблицу, теперь с выделенной строкой 2.

Я думал об использовании функции XSL, которая использует, например, следующее: выделит только первое значение, для которого было добавлено = '0', а значение больше первого.

      <xsl:if test="(@Added= '0') and (@ID= DatabaseResult/root/row/ID[not(. &gt; /DatabaseResult/root/row/ID)][1])">

      <xsl:attribute name="style">background-color: green</xsl:attribute>

        <tr style="text-align: center;">
          <td><xsl:value-of select = "@Name" /></td>
          <td><xsl:value-of select = "@Description" /></td>
          <td><xsl:value-of select = "@Quantity" /></td>
          <td><xsl:value-of select = "@UOM" /></td>
          <td><xsl:value-of select = "@ID" /></td>
          <td><xsl:value-of select = "@Added" /></td>
        </tr>
        </xsl:if>
        </xsl:for-each>

Не могли бы вы сообщить, какое из условий лучше всего подходит для вышеуказанного? упомянутый случай?

Заранее спасибо

...