Используя Apache FOP, я хочу собрать некоторую информацию в файле PDF. Источник XML имеет некоторые дочерние узлы a, e, скажемXSLT для последовательности дочерних узлов в FOP
<node>
<a>some val</a>
<b>some other val</b>
<c>more val</c>
<d>even more val</d>
<e>a last val</e>
</node>
Я не хочу отображать их все. a, b, c всегда отображаются, но могут быть emtpy. Максимальное количество отображаемых значений равно 3. Итак, d и e являются необязательными и должны храниться в указанном порядке.
К сожалению, структура XML не может быть изменена.
Для чего нужен XSLT? Я попробовал
<xsl:for-each select="child::*[name()='a' or name() = 'b' or name() = 'c' or name() = 'd' or name() = 'e'][string-length(.)>0]">
<xsl:if test="position() <= 3">
<xsl:value-of select="name()"/>
</xsl:if>
</xsl:for-each>
но это не приносит мне упорядоченный список. . :(
Возможно использование Apache FOP с Saxon 9 для использования XSLT 2.0, я думаю. И с XSLT 2.0 вы можете просто записать заказ, который вы хотите, например. '
a, b, c может быть пустым. .. –
Фрагмент '