xml – 理解XSLT中的position()函数
发布时间:2020-12-16 07:41:05 所属栏目:百科 来源:网络整理
导读:我和这个家伙有类似的问题: using position() function in xslt 但我不需要编号,我只是想了解它的工作方式: ?xml version="1.0" encoding="UTF-8"?testablah/aablah/aablah/aablah/a/test 对于此输入,以下样式表: ?xml version="1.0" encoding="UTF-8"?xs
我和这个家伙有类似的问题:
using position() function in xslt 但我不需要编号,我只是想了解它的工作方式: <?xml version="1.0" encoding="UTF-8"?> <test> <a>blah</a> <a>blah</a> <a>blah</a> <a>blah</a> </test> 对于此输入,以下样式表: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <xsl:apply-templates/> </body> </html> </xsl:template> <xsl:template match="select"> <xsl:apply-templates/> </xsl:template> <xsl:template match="a"> <xsl:value-of select="position()"/><br/> <xsl:apply-templates/> </xsl:template> </xsl:stylesheet> 输出: <html><body> 2<br>blah 4<br>blah 6<br>blah 8<br>blah </body></html> 为什么跳过不均匀的数字?
因为当你在/级别时,你说: <xsl:apply-templates/> 它将模板应用于根节点的所有节点子节点,并且(由于内置的??模板规则)将模板应用于它们的所有后代 – 包括分隔< a>的文本节点.元素. 您将获得一个输入的不同结果: <?xml version="1.0" encoding="UTF-8"?> <test><a>blah</a><a>blah</a><a>blah</a><a>blah</a></test> 或者如果您将样式表中的指令添加到: <xsl:strip-space elements="*"/> 或者如果您选择性地应用模板,例如 <xsl:apply-templates select="//a"/> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |