XSLT3-如何在XSL中使用命名空间 - 字母:essuatiate

问题描述 投票:0回答:1

使用萨克森EE 9.9,我正在尝试使用XSL:使用命名空间 - 字母进行评估,请参阅下面的基本尝试在变量$ namesspace-context中。我找不到有关如何在网络上设置此名称空间参数的任何示例,这是Chatgpt可以提供的最好的示例:

<xsl:variable name="xmlData">
    <root xmlns="http://example.com/my">
        <element>Hello, World!</element>
    </root>
</xsl:variable>

<xsl:template match="/">
    <xsl:variable name="namespace-context"><my:dummy xmlns:my="http://example.com/my"/></xsl:variable>
    
    <xsl:variable name="expr" select="'/my:root/my:element'"/>
    <xsl:variable name="result" as="node()*">
        <xsl:evaluate xpath="$expr" context-item="$xmlData" namespace-context = "$namespace-context"/>
    </xsl:variable>
    
    <output>
        <xsl:copy-of select="$result"/>
    </output>
</xsl:template>
saxon xslt-3.0
1个回答
0
投票

您需要选择一个元素节点,而不是文档节点,因此请执行

    <xsl:evaluate xpath="$expr" context-item="$xmlData" namespace-context = "$namespace-context/*"/>

应该起作用:示例小提琴

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.