У меня есть XML -код, который выглядит следующим образом:
<l>
some text <app><rdg>text inside an app</rdg></app>
</l>
<l>
<app><rdg>line with text inside an app</rdg></app>
</l>
Я хочу обработать XML с помощью XSLT и добавить к выводу различные атрибуты, в зависимости от:
- Если строка содержит текст и
<app>
и <rdg>
с текстом в нем - Если строка содержит только текст, то это внутри
<rdg>
-Элемента
Я попробовал следующее решение, которое не работает для меня:
<xsl:for-each select="l">
<xsl:choose>
<xsl:when test="app/rdg">
<myElement>
<xsl:attribute name="class" select="'case1'"/>
</myElement>
</xsl:when>
<xsl:when
test="app/rdg[not(../following-sibling::*) and
not(../preceding-sibling::*)]">
<myElement>
<xsl:attribute name="class" select="'case2'"/>
</myElement>
</xsl:when>
</xsl:choose>
</xsl:for-each>
Есть ли способ различить guish эти два (или, конечно, даже больше) случая?