首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从<xd:doc/>获取值

从<xd:doc/>获取值
EN

Stack Overflow用户
提问于 2019-03-19 19:04:41
回答 1查看 57关注 0票数 0

我想访问我存储在

代码语言:javascript
复制
<xsl:stylesheet>
<xd:doc scope="stylesheet">
<xd:ul>
    <xd:li>
            <xd:i>Updates</xd:i>: <xd:ul>
                            <xd:li>20.11.2018, version: <xd:i>1.1.0</xd:i></xd:li>
                            <xd:li>08.03.2019, version: <xd:i>2.0.0</xd:i></xd:li>
                            <xd:li>11.03.2019, version: <xd:i>2.0.1</xd:i></xd:li>
            </xd:ul>
    </xd:li>
</xd:ul>
</xd:doc>

</xsl:stylesheet>

通常,@select文件的计算结果是当前正在转换的xml- XPath。但是如何引用(主)XSL- XPath表呢?

另一种选择是使用fn:doc()。但是我想把版本编写功能放在一个外部模块中,这样就有了动态文件名,而我不知道如何获得xsl文件名

我使用oXygen XML editor 20.1,在那里我定义了转换场景。

EN

回答 1

Stack Overflow用户

发布于 2019-03-21 19:39:37

@MartinHonnen谢谢。我更新了问题中的代码。如您所见,我将版本存储在样式表的文档中。

document('') / doc('')正是我所需要的。因此,我实现了以下内容:

我将主样式表的document-node放在此样式表中的变量中:

代码语言:javascript
复制
<xsl:variable name="currentStylesheet" select="doc('')"/>   

然后在外部模块中引用它

代码语言:javascript
复制
 <xsl:variable as="xs:string" name="versionXSLT" select="$currentStylesheet//xd:li[xd:i = 'Updates']/xd:ul/xd:li[last()]/xd:i/string()"/> 

我还使用它来获取样式表的名称:

代码语言:javascript
复制
<xsl:variable as="xs:string" name="currentStylesheetName" select="tokenize(document-uri($currentStylesheet), '/')[last()]"/>

有没有更好的解决方案?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55239495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档