У меня есть следующий XML:Как вы рассчитываете количество результатов, возвращаемых из цикла xsl: for-each, содержащего другую функцию XQuery?
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="count-example.xsl"?>
<musiclist>
<mp3>
<id>MP1003</id>
<artist>Frank Sinatra</artist>
<title>Fly Me To The Moon</title>
<location path="home/music/sinatra/MP1008.mp3" />
</mp3>
<mp3>
<id>MP1004</id>
<artist>Frank Sinatra</artist>
<title>New York, New York</title>
<location path="home/music/sinatra/MP1004.mp3" />
</mp3>
<mp3>
<id>MP1005</id>
<artist>Frank Sinatra</artist>
<title>Young At Heart</title>
<location path="home/music/sinatra/MP1009.mp3" />
</mp3>
</musiclist>
и следующий XSL:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="musiclist">
<xsl:for-each select="mp3">
<xsl:variable name="idvar" select="id" />
<xsl:if test="contains(location/@path, $idvar) = 0">
false
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
XSL выход будет ложных дважды, потому что захват ID я не в атрибуте пути в элементе местонахождения как I хотел бы.
Как подсчитать этот результат, т. Е. Вывести номер 2 в качестве полного результата этого XSL?
Да, в XPath 2.0 сравнение логического числа с целым числом недопустимо. –