我在下面XML
。
<chapter num="1">
<section level="sect2">
<page>22</page>
</section>
<section level="sect3">
<page>23</page>
</section>
</chapter>
这里我试图第一次出现<page>
。
我使用下面的XSLT。
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ntw="Number2Word.uri" exclude-result-prefixes="ntw">
<xsl:output method="html"/>
<xsl:strip-space elements="*"/>
<xsl:variable name="ThisDocument" select="document('')"/>
<xsl:template match="/">
<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE html>]]></xsl:text>
<html>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="chapter">
<section class="tr_chapter">
<xsl:value-of select="//page[1]/text()"/>
<div class="chapter">
</div>
</section>
</xsl:template>
</xsl:stylesheet>
但打印出的所有page
个valyes的输出。我只想要第一个。
当前输出。
<!DOCTYPE html>
<html>
<body>
<section class="tr_chapter">2223
<div class="chapter">
</div>
</section>
</body>
</html>
在page
之后打印<section class="tr_chapter">
值,我只想 22 ,但我 2223
在这里我使用//page[1]/text()
,因为我不确定page
是否属于section
,它是随机的。
请告诉我如何才能获得第一个page
值。
答案 0 :(得分:1)
答案 1 :(得分:1)
如果您想在模板中搜索第一个chapter
后代的page
上下文元素的内容,请使用<xsl:value-of select="descendant::page[1]"/>
或<xsl:value-of select="(.//page)[1]"/>
。