在xslt中访问节点的名称空间

时间:2012-05-31 04:44:33

标签: xslt xpath xslt-1.0

来源:

    <Data>
    <heading xmlns="Some Uri">
                <text>aaa</text>


    </heading>
    <Data>

XSLT写道

            <?xml version="1.0" encoding="utf-8"?>
            <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
            xmlns:link1="Some Uri">
                <xsl:output method="xml" indent="yes"/>

                  <xsl:template match="Data">
                    <xsl:value-of select="link1:heading/namespace-uri()"/>

                  </xsl:template>


            </xsl:stylesheet>

我收到错误。

任何人都可以帮助获取命名空间。

谢谢。

2 个答案:

答案 0 :(得分:1)

nonnb应该让评论成为答案......

namespace-uri()函数可以执行您想要的操作。

答案 1 :(得分:1)

<xsl:value-of select="link1:heading/namespace-uri()"/>

在XSLT 1.0 / XPath 1.0中,这是语法错误

将此更正为

<xsl:value-of select="namespace-uri(link1:heading)"/> 

在XSLT 2.0 / XPath 2.0中,这又是一个错误(namespace-uri()的参数不能被省略。正确到:

<xsl:value-of select="link1:heading/namespace-uri(.)"/>