я работаю в XSLT 1.0 прямо сейчас, и у меня возникают проблемы группировки correctly.My XML не может быть изменен, и это выглядит следующим образом:XSLT Группирование Конкретные Siblings
<Analysis>
<comment>Test 1</comment>
<Action>
<Result>Passed</Result>
</Action>
<Action>
<Result>Passed</Result>
</Action>
<Action>
<Result>Passed</Result>
</Action>
<comment>Start 2nd Phase</comment>
<Action>
<Result>Failed</Result>
</Action>
<Action>
<Result>Passed</Result>
</Action>
<comment>Test 2</comment>
<Action>
<Result>Failed</Result>
</Action>
<Action>
<Result>Failed</Result>
</Action>
<Action>
<Result>Passed</Result>
</Action>
<comment>Start 2nd Phase</comment>
<Action>
<Result>Failed</Result>
</Action>
<comment>Start 3rd Phase</comment>
<Action>
<Result>Failed</Result>
</Action>
<comment>Test 3</comment>
<Action>
<Result>Passed</Result>
</Action>
<Action>
<Result>Passed</Result>
</Action>
<Action>
<Result>Passed</Result>
</Action>
<Action>
<Result>Passed</Result>
</Action>
<Action>
<Result>Passed</Result>
</Action>
<comment>Test 4</comment>
<Action>
<Result>Failed</Result>
</Action>
<Action>
<Result>Failed</Result>
</Action>
<Action>
<Result>Passed</Result>
</Action>
<comment>Start 2nd Phase</comment>
<Action>
<Result>Failed</Result>
</Action>
<Action>
<Result>Passed</Result>
</Action>
</Analysis>
код, который я в настоящее время будет печатать a Сбой, если он обнаружил ошибку под тестом, но он делает это только один раз. Однако сейчас это делается под каждым комментарием, а не с каждым комментарием, в котором есть «Тест».
<xsl:key name="actions" match="Action" use="generate-id(preceding-sibling::comment[1])" />
<xsl:template match="/Analysis">
<table>
<xsl:for-each select="comment">
<tr>
<td>
<xsl:if test="starts-with(text(),'Test')">
<xsl:value-of select="."/>
</xsl:if>
</td>
</tr>
<xsl:if test="key('actions', generate-id())[Result='Failed']">
<tr>
<td>Failed</td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</xsl:template>
Есть ли способ, чтобы сделать «предшествовавший-Sibling :: комментария [1]» работу только для комментариев, которые начинаются с «Test» или содержат «Тест»? Различное количество не важных комментариев, которые чередуются с важной информацией. Как и предыдущем примере, я хочу, чтобы увидеть выход, который был бы как
Test 1
Failed
Test 2
Failed
Test 3
Test 4
Failed
Однако, с кодом я в настоящее время я получаю
Test 1
Failed
Test 2
Failed
Failed
Failed
Test 3
Test 4
Failed
Failed
Любая помощь будет оценена.
Это работало отлично, спасибо очень много. – Dschmied