Вот часть моего XML:
<ing>
<amt>
<qty>12</qty>
</amt>
<item>chicken thighs (boneless and skinned)</item>
</ing>
<ing>
<amt>
<qty>3</qty>
</amt>
<item>bay leaves</item>
</ing>
<ing>
<amt>
<qty>300</qty>
<unit system="metric">gram(s)</unit>
</amt>
<item>oyster mushroom(s)</item>
<prep>(torn into strips)</prep>
</ing>
Не каждый элемент <ing>
имеет элемент <prep>
, но я не хочу, чтобы строка элемента prep была в коде, если его нет вXML.
Вот мой текущий XSLT:
<xsl:template match="recipeml/recipe/ingredients">
<h2><xsl:text>Ingredients</xsl:text></h2>
<xsl:for-each select="ing">
<li>
<xsl:value-of select="item"/>
<ul><xsl:value-of select="amt"/></ul>
<xsl:choose>
<xsl:when test="following-sibling::prep">
<ul><i><xsl:value-of select="prep"/></i></ul>
</xsl:when>
</xsl:choose>
</li>
</xsl:for-each>
</xsl:template>
То, что я пробовал до сих пор, либо дает мне:
<li>oyster mushroom(s)
<ul>
300
gram(s)
</ul>
</li>
Без <prep>
или каждого *У 1015 * есть один, многие из которых пусты (<prep></prep>
)
Есть ли способ сделать так, чтобы он появлялся только при наличии элемента?