循环如何检查时,它是第一次程序运行<xsl:if test="$DriverCount > 1">
语句,以便程序做了一次计数迭代。什么时候它最后一次运行相同的if语句,以便它只做一次其他操作? position()
和数量不工作的if语句不总是在位置上运行()= 1。我不能使用模板函数和无法为我使用XF设计师写任何XSL功能,这些关键字不能在那里使用。XSL - 在-每个条件
XML
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<DETAILS>
<NAME>SANNIE</NAME>
<SURNAME>DELANGE</SURNAME>
</DETAILS>
<INSURANCE_ITEMS>
<VEHICLE>
<XMLDOC_VEHICLE>
<REGULAR_DRIVER_DETAILS>
<DRIVER_NAME>SAM</DRIVER_NAME>
<VEH>POLO</VEH>
</REGULAR_DRIVER_DETAILS>
</XMLDOC_VEHICLE> -<XMLDOC_VEHICLE>
<REGULAR_DRIVER_DETAILS>
<DRIVER_NAME>SANNIE</DRIVER_NAME>
<VEH>GOLF</VEH>
</REGULAR_DRIVER_DETAILS>
</XMLDOC_VEHICLE> <XMLDOC_VEHICLE>
<REGULAR_DRIVER_DETAILS>
<DRIVER_NAME>SANNIE</DRIVER_NAME>
<VEH>GOLF</VEH>
</REGULAR_DRIVER_DETAILS>
</XMLDOC_VEHICLE> <XMLDOC_VEHICLE>
<REGULAR_DRIVER_DETAILS>
<DRIVER_NAME>SAM</DRIVER_NAME>
<VEH>MAZDA</VEH>
</REGULAR_DRIVER_DETAILS>
</XMLDOC_VEHICLE>
</VEHICLE>
</INSURANCE_ITEMS>
</ROOT>
XSL
<xsl:for-each select="/ROOT/INSURANCE_ITEMS/VEHICLE/XMLDOC_VEHICLE[not(REGULAR_DRIVER_DETAILS/DRIVER_NAME = preceding-sibling::XMLDOC_VEHICLE/REGULAR_DRIVER_DETAILS/DRIVER_NAME)]">
<xsl:variable select="REGULAR_DRIVER_DETAILS/DRIVER_NAME" name="Driver"/>
<xsl:variable select="count(/ROOT/INSURANCE_ITEMS/VEHICLE/XMLDOC_VEHICLE/REGULAR_DRIVER_DETAILS[DRIVER_NAME=$Driver])" name="DriverCount"/>
<xsl:if test="$DriverCount > 1">
<xsl:value-of select="'Hello '"/>
<xsl:value-of select="REGULAR_DRIVER_DETAILS/DRIVER_NAME"/>
<xsl:value-of select="' your cars are: '"/>
<xsl:for-each select="/ROOT/INSURANCE_ITEMS/VEHICLE/XMLDOC_VEHICLE[REGULAR_DRIVER_DETAILS/DRIVER_NAME=$Driver]">
<xsl:value-of select="REGULAR_DRIVER_DETAILS/VEH"/>
<xsl:if test="$Driver = following-sibling::XMLDOC_VEHICLE/REGULAR_DRIVER_DETAILS/DRIVER_NAME">
<xsl:value-of select="' and '"/>
</xsl:if>
</xsl:for-each>
</xsl:if>
</xsl:for-each>
可以使用什么版本的XSLT的?你是说你的工具不会让你定义任何你自己的模板?那么需要去模板之外的其他事情呢?例如,你能定义一个键吗?我得到的是,这看起来像是一个相当标准的分组问题,可以使用for-each-group(如果你有XSLT 2.0)或Muenchian方法(如果你被困在1.0中)解决。 –
谢谢,Muenchian方法完美地工作。我使用1.0版本。我发现在使用XF Designer时需要在GLOBAL XSLT下声明“XSL:KEY”。模板也是这样工作的。我发布了我的最终版本 – user3275527