Мне нужно найти последнее вхождение группы цен (которые являются итогами). Эти цены всегда будут иметь десятичный знак в них (.)Выберите последнее вхождение группы узлов XSLT
Их текстовые значения хранятся в узлах, и они находятся в качестве последнего вхождения из трех узлов, все из которых содержат «.»..
Пример XML:
<?xml version="1.0" encoding="UTF-16"?>
<?xml-stylesheet type="text/xsl" href="XSLT.xsl"?>
<document xmlns="http://www.scansoft.com/omnipage/xml/ssdoc-schema3.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<part1>
<prices>
<wd>3.1</wd>
<wd>56.4</wd>
<wd>134.4</wd>
</prices>
<prices2>
<wd>1,330.2</wd>
<wd>23.14</wd>
<wd>124.7</wd>
</prices2>
</part1>
</document>
Моя попытка найти окончательный группы выглядит следующим образом. Однако я не могу его собрать, но одна работа.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ss="http://www.scansoft.com/omnipage/xml/ssdoc-schema3.xsd">
<xsl:output method="text" />
<xsl:template match="/">
<xsl:variable name="LastGroup" select="//ss:wd[(contains(.,'.') and (following::ss:wd[contains(.,'.')]) and (following::ss:wd[contains(.,'.')][2])][last()]"/>
<xsl:for-each select="$LastGroup">
<xsl:value-of select="."/>
<xsl:value-of select="following::ss:wd"/>
<xsl:value-of select="following::ss:wd[2]"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Я использую XSLT 1.0