首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EXSLT节点-设置剥离属性?

EXSLT节点-设置剥离属性?
EN

Stack Overflow用户
提问于 2013-09-23 16:05:23
回答 2查看 236关注 0票数 0

我以前注意到这一点,但不记得我是怎么绕过它的。当节点设置XML字符串时,EXSLT似乎正在剥离属性。

下面是一个精心设计的示例(为了简洁起见,我已经去掉了XSLT样式表标记,但EXSLT的公共库正在加载到命名空间exsl中)。

XML

代码语言:javascript
复制
<xml>
    <node />
    <node />
    <node />
</xml>

XSLT:

代码语言:javascript
复制
<xsl:template match="/">
    <xsl:variable name='nodeset' select='exsl:node-set(xml/node)' />
    <xsl:copy-of select='$nodeset' />
</xsl:template>

<xsl:template match='node'><node foo='bar' /></xsl:template>

结果

代码语言:javascript
复制
<node/><node/><node/>

演示游乐场 (参见output source)

EN

回答 2

Stack Overflow用户

发布于 2013-09-23 16:41:44

没有必要在输入XML中的节点上使用exsl:node-set。您只需要在变量中构造结果树片段,然后使用XPath在结果树片段中选择节点时,才需要使用它。

对于示例输入,没有一个node元素具有任何属性。模板匹配node永远不会应用,因为模板匹配文档节点只是创建一个变量,在输入中选择xml/node元素,然后将它们的副本输出到结果树中。

票数 1
EN

Stack Overflow用户

发布于 2013-09-23 21:27:44

还有一点要添加到Martin Honnen的响应中: EXSLT是一种规范,而不是实现。如果有错误,它在实现中,而不是规范中。因此,我们需要知道您使用的是什么实现。

但是,您没有提供任何bug的证据。您似乎对exslt:node-set()打算做什么感到困惑。

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

https://stackoverflow.com/questions/18963884

复制
相关文章

相似问题

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