xslt – 使用xsl获取名为xlink:href的xml属性
发布时间:2020-12-16 23:31:00 所属栏目:百科 来源:网络整理
导读:如何在xsl模板中获取xml节点的xlink:href属性的值? 我有这个xml节点: DCPType HTTP Get OnlineResource test="hello" xlink:href="http://localhost/wms/default.aspx" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" / /Get /HTTP/DCP
如何在xsl模板中获取xml节点的xlink:href属性的值?
我有这个xml节点: <DCPType> <HTTP> <Get> <OnlineResource test="hello" xlink:href="http://localhost/wms/default.aspx" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" /> </Get> </HTTP> </DCPType> 当我尝试以下xsl时,我收到错误消息“未定义前缀’xlink’.” : <xsl:value-of select="DCPType/HTTP/Get/OnlineResource/@xlink:href" /> 当我尝试这个简单的属性时,它可以工作: <xsl:value-of select="DCPType/HTTP/Get/OnlineResource/@test" /> 解决方法
您需要在XSLT中声明XLINK命名空间,然后才能引用它.
您可以将其添加到xsl:value-of元素: <xsl:value-of select="DCPType/HTTP/Get/OnlineResource/@xlink:href" xmlns:xlink="http://www.w3.org/1999/xlink" /> 但是,如果您需要在样式表的其他区域中引用它,那么在XSLT的document元素的顶部声明它会更容易: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xlink="http://www.w3.org/1999/xlink"> 顺便说一句,您不需要在样式表中使用与XML中使用的名称空间前缀相同的名称空间前缀.名称空间前缀仅用作名称空间URI的简写.您可以声明并使用XLINK命名空间,如下所示: <xsl:value-of select="DCPType/HTTP/Get/OnlineResource/@x-link:href" xmlns:x-link="http://www.w3.org/1999/xlink"/> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |