Xml 在XSL中引用图形

Xml 在XSL中引用图形,xml,xslt,Xml,Xslt,问题:我试图在HTML文本中引用图形,这是指向图形标题的内部链接 图和参考的XML代码如下所示: (...) As it can be seen in the Figure <p:iref intref="f1"/> (...) <float:figure id="f1"> <float:graphic path="f1.jpg"/> <float:caption> <p:p> Some text

问题:我试图在HTML文本中引用图形,这是指向图形标题的内部链接

图和参考的XML代码如下所示:

(...) As it can be seen in the Figure <p:iref intref="f1"/> (...)

<float:figure id="f1">
     <float:graphic path="f1.jpg"/>
     <float:caption>
         <p:p> Some text </p:p>
     </float:caption> 
HTML格式的所需结果:

(...) As it can be seen in Figure 1 (...)

       -----------some Figure------------
       Figure 1 - some text

(...) and like we've seen back then, in Figure 2 (...)
(...) As it can be seen in Figure 1 (...)

       -----------some Figure------------
       Figure 1 - some text

(...) and like we've seen back then, in Figure 1 (...)
所以看起来,虽然引用很好(在第一个输出中,如果我单击链接,它是图2中的数字2,它引用了图1),但是出现在图2


有什么建议吗

您需要从被引用的图形中,而不是从引用本身计算
preference::float:figure
元素。那么:

<xsl:template match="p:iref">
    <xsl:variable name="fid" select="@intref"/>
    <xsl:variable name="target" select="//float:figure[@id=$fid]"/>
    <xsl:if test="$target">
        <a href="#{$fid}"><xsl:value-of select="count($target/preceding::float:figure)+1"/></a> 
    </xsl:if>
</xsl:template>

请创建一个。在您的例子中,这意味着:一个具有代表性的XML输入示例、一个完整的XLST样式表和HTML输出,而不是它的描述。谢谢
(...) As it can be seen in Figure 1 (...)

       -----------some Figure------------
       Figure 1 - some text

(...) and like we've seen back then, in Figure 1 (...)
<xsl:template match="p:iref">
    <xsl:variable name="fid" select="@intref"/>
    <xsl:variable name="target" select="//float:figure[@id=$fid]"/>
    <xsl:if test="$target">
        <a href="#{$fid}"><xsl:value-of select="count($target/preceding::float:figure)+1"/></a> 
    </xsl:if>
</xsl:template>