XSL два цикла для каждого для одного и того же узла - PullRequest
0 голосов
/ 15 июня 2010

Проблема у меня в том, что я хочу обвести родителей, делая их жирным шрифтом, затем получить детей через id: pid (родительский идентификатор) и перечислить их.Второй цикл не работает.

XML

XSL

<xsl:choose>
 <xsl:when test="@PARENT_OBH_ID">

<b><xsl:value-of select="@TITLE"/></b>

<xsl:for-each select="FOOTER">
   -<xsl:value-of select="@TITLE"/>
</xsl:for-each>


 </xsl:when>
</xsl:choose>

</xsl:for-each>

Спасибо

1 Ответ

0 голосов
/ 15 июня 2010

Вам, вероятно, лучше реструктурировать это, чтобы использовать шаблоны, система, которую вы используете в данный момент, означает, что данные контекста становятся запутанными (вы анализатор xslt, не уверен, какой элемент должен читать атрибуты изнутри второй цикл)

<xsl:choose>
 <xsl:when test="@PARENT_OBH_ID">
   <b><xsl:value-of select="@TITLE"/></b>
   <xsl:apply-templates select="FOOTER" />
 </xsl:when>
</xsl:choose>

<xsl:template match="FOOTER">
    <xsl:value-of select="@TITLE"/>
</xsl:template>

apply-templates перезапускает контекст с элементом нижнего колонтитула в качестве основного фокуса (поэтому @TITLE ссылается на атрибут title в нижнем колонтитуле, к чему вы стремились, я догадываюсь?)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...