我的需求:我想深度复制单个选定节点的所有子节点而不实际复制它。示例:来自
<father><son i="1" /><son i="2" /><son i="0"><lastNode /></son></father>
我希望摘录
<son i="1" /><son i="2" /><son i="0"><lastNode /></son>
我知道我可以通过循环for-each然后xsl:copy-of来完成此操作。我想知道是否有一个更简单的表达式来实现相同的结果。有些想法?
后续。我的问题遗漏了几点。我应该说所有的孩子都意味着“所有可能的孩子”,包括文本节点;另一个验证,一个更好的问题已经包含答案。其次,我从你那里学到的东西 - 社区 - 是我愚蠢到试图通过XSL解决事实上更多的是XPATH问题。感谢所有人的见解
干杯。
答案 0 :(得分:3)
尝试选择所有孩子..
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:copy-of select="father/*"/>
</xsl:template>
</xsl:stylesheet>
E.G。 给定输入
<father><son i="1" /><son i="2" /><niceSon /><son i="0"><lastNode /></son></father>
输出
<son i="1" /><son i="2" /><niceSon /><son i="0"><lastNode /></son>
答案 1 :(得分:3)
<xsl:copy-of select="father/node()" />
答案 2 :(得分:0)
使用例如<xsl:copy-of select="father/son"/>