У меня есть образецКоличество XSLT-двойников
<Root>
<A rename="yes,it is option 1"/>
<C rename="no"/>
<A rename="yes,it is option 2"/>
<C rename="no"/>
<C rename="yes"/>
<C rename="no"/>
<A rename="yes,it is option 3"/>
<A rename="yes,it is option 4"/>
<C rename="no"/>
<C rename="yes"/>
<C rename="no"/>
<C rename="no"/>
</Root>
тогда я применить шаблон выглядеть следующим образом
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="A">
<p><b>option1: <xsl:value-of select="count(following-sibling::C[preceding-sibling::A[1]/@rename[contains(.,'option 1')]])"/></b></p>
<p><b>option2: <xsl:value-of select="count(following-sibling::C[preceding-sibling::A[1]/@rename[contains(.,'option 2')]])"/></b></p>
<p><b>option3: <xsl:value-of select="count(following-sibling::C[preceding-sibling::A[1]/@rename[contains(.,'option 3')]])"/></b></p>
<p><b>option4: <xsl:value-of select="count(following-sibling::C[preceding-sibling::A[1]/@rename[contains(.,'option 4')]])"/></b></p>
</xsl:template>
</xsl:stylesheet>
, но я хочу, чтобы выходной выглядеть следующим образом, если не родственный следующие A, мы просто игнорировать этот one.just печатать эти @rename содержит «вариант», а также содержит элементы
option1: 1
option2: 3
option4: 4
, что я получаю сейчас
option1: 1
option2: 3
option3: 0
option4: 4
option1: 0
option2: 3
option3: 0
option4: 4
option1: 0
option2: 0
option3: 0
option4: 4
option1: 0
option2: 0
option3: 0
option4: 4
Теперь это довольно хороший пример того, как не использовать XML. Зачем использовать структурированный формат, когда вы не даете своим данным какую-либо структуру? – Tomalak
Также * вы на самом деле не попробовали * свой отображаемый XSLT-код с вашим вводом. Я получаю в значительной степени результат, который вы хотите. Пожалуйста, приложите больше усилий в свой вопрос, невозможно помочь вам, если ваш код и ваш текст вопроса расскажут две разные истории. – Tomalak
Я просто хочу упростить свой исходный файл –