Вот соответствующая часть моего XML-кода:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE recipeml SYSTEM "recipeml.dtd">
<recipeml>
<recipe>
<head>
<title>Coq au Riesling</title>
</head>
<ingredients>
<ing>
<amt>
<qty>30</qty>
<unit system="metric">ml</unit>
</amt>
<item>garlic-infused olive oil</item>
</ing>
<ing>
<amt>
<qty>150</qty>
<unit system="metric" unit="g">gram(s)</unit>
</amt>
<item>bacon lardons</item>
</ing>
<ing>
<amt>
<qty>1</qty>
</amt>
<item>leek(s)</item>
<prep>(finely sliced)</prep>
</ing>
<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) (torn into strips)</item>
</ing>
<ing>
<amt>
<qty>750</qty>
<unit system="metric">ml</unit>
</amt>
<item>Riesling</item>
</ing>
<ing>
<amt>
<qty> 1</qty>
<unit>splash of</unit>
</amt>
<item>double cream (optional)</item>
</ing>
<ing>
<amt>
<qty> 1</qty>
<unit>pinch of</unit>
</amt>
<item>salt</item>
</ing>
<ing>
<amt>
<qty>1</qty>
<unit>pinch of </unit>
</amt>
<item>Pepper</item>
</ing>
<ing>
<amt>
<qty>1</qty>
<unit>tablespoon(s)</unit>
</amt>
<item>dill (chopped to serve (2 tablespoons if needed)) </item>
</ing>
</ingredients>
Вот мой XSLT:
<xsl:template match="/">
<html>
<body>
<xsl:apply-templates>
</xsl:apply-templates>
</body>
</html>
</xsl:template>
<xsl:template match="recipeml/recipe/head/title">
<h3>
<xsl:value-of select="."/>
</h3>
</xsl:template>
<xsl:template match="recipeml/recipe/ingredients">
<ul>
<xsl:for-each select="ing">
<li><xsl:value-of select="item"/>
<ul><xsl:value-of select="//amt/child::qty[not(following-sibling::unit)]"/></ul></li>
</xsl:for-each>
</ul>
</xsl:template>
<xsl:template match="recipeml/recipe/directions">
<xsl:for-each select="*[not(preceding-sibling::step)]"/>
<xsl:for-each select="*[not(following-sibling::note)]"/>
</xsl:template>
Моя проблемас этой линией здесь.Я хочу, чтобы он отображал количество, только если нет элемента.Я проверил свой xpath, и он сработал, но когда я применяю свой сценарий, он устанавливает, что каждый элемент имеет количество 1.
<ul><xsl:value-of select="//amt/child::qty[not(following-sibling::unit)]"/></ul></li>
Вот вывод, который я получаю:
<html>
<body>
<h3>Coq au Riesling</h3>
<ul>
<li>garlic-infused olive oil
<ul>1</ul>
</li>
<li>bacon lardons
<ul>1</ul>
</li>
<li>leek(s)
<ul>1</ul>
</li>
<li>chicken thighs (boneless and skinned)
<ul>1</ul>
</li>
<li>bay leaves
<ul>1</ul>
</li>
<li>oyster mushroom(s) (torn into strips)
<ul>1</ul>
</li>
<li>Riesling
<ul>1</ul>
</li>
<li>double cream (optional)
<ul>1</ul>
</li>
<li>salt
<ul>1</ul>
</li>
<li>Pepper
<ul>1</ul>
</li>
<li>dill (chopped to serve (2 tablespoons if needed))
<ul>1</ul>
</li>
</ul>
Что мне нужно изменить, чтобы оно показывало только сумму лука-порея, куриных бедер и лавровых листьев?