質問

I've got some xml that looks a little like this:

<myGroup>
   <something>Stuff</something>
   <anotherThing>More Stuff</anotherThing>
   <thisThing></thisThing>
   <andAnother>Good stuff</andAnother>
   <howAboutThis></howAboutThis>
   <andOneMore>Tell me the good things</andOneMore>
   <lastOne>That come into your mind about your mother</lastOne
<myGroup>

myGroup actually contains more node but I'm only interested in specific one. What I'm trying to do is check if they are empty and display them if not. Like this:

<xsl:if test="something != ''">
    <xsl:value-of select="something" />
</xsl:if>
<xsl:if test="anotherThing != ''">
    <xsl:value-of select="anotherThing" />
</xsl:if>

etc

What I'm after doing is stop displaying anymore once I have 3 non-empty nodes. Thanks.

役に立ちましたか?

解決

Put the condition in a predicate:

<xsl:template match="myGroup">
  <xsl:apply-templates select="(something | anotherthing | howAboutThis | lastOne)[normalize-space()][position() &lt; 4]"/>
</xsl:template>

<xsl:template match="myGroup/*">
  <xsl:value-of select="."/>
</xsl:template>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top