xml – 用于生成另一个XSLT脚本的XSLT
发布时间:2020-12-16 07:43:39 所属栏目:百科 来源:网络整理
导读:在这个帖子中,我引用了我的上一个帖子: Convert XML to CSV using XSLT – dynamic columns. 引用线程中的XSLT脚本工作正常但是使用大型XML文档时性能不佳.现在我想编写一个XSLT脚本,输出另一个XSLT脚本,该脚本将输出最终的CSV文件. 题: 如何编写第一个XSL
在这个帖子中,我引用了我的上一个帖子:
Convert XML to CSV using XSLT – dynamic columns.
引用线程中的XSLT脚本工作正常但是使用大型XML文档时性能不佳.现在我想编写一个XSLT脚本,输出另一个XSLT脚本,该脚本将输出最终的CSV文件. 题: 如何编写第一个XSLT脚本?输出应如下所示: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes"/> <xsl:template match="/*"> <xsl:text>Name;</xsl:text> <xsl:text>Brother;</xsl:text> <xsl:text>Sister</xsl:text> <-- this part is dynamic --> <xsl:apply-templates select="Person" /> </xsl:template> <xsl:template match="Person"> <xsl:value-of select="Name" /> <xsl:value-of select="Brother" /> <xsl:value-of select="Sister" /> <-- this part is dynamic too --> <xsl:text> </xsl:text> </xsl:template> </xsl:stylesheet> 输入的XML文件与引用的线程中的相同: <Person> <Name>John</Name> <FamilyMembers> <FamilyMember> <Name>Lisa</Name> <Type>Sister</Type> </FamilyMember> <FamilyMember> <Name>Tom</Name> <Type>Brother</Type> </FamilyMember> </FamilyMembers> </Person> <Person> <Name>Daniel</Name> <FamilyMembers> <FamilyMember> <Name>Peter</Name> <Type>Father</Type> </FamilyMember> </FamilyMembers> </Person> 对于每个不同的类型元素,在生成的XSLT脚本中应该有如下所示的一行: <xsl:text>Type;</xsl:text>
要编写一个输出另一个XSLT的XSLT,您需要使用< xsl:element>生成输出元素,例如
<xsl:element name="xsl:text"> 或使用< xsl:namespace-alias>如果要使用文字结果元素. XSLT spec有一个例子: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:axsl="http://www.w3.org/1999/XSL/TransformAlias"> <xsl:namespace-alias stylesheet-prefix="axsl" result-prefix="xsl"/> <xsl:template match="/"> <axsl:stylesheet> <xsl:apply-templates/> </axsl:stylesheet> </xsl:template> 任何< axsl:...>样式表中的元素将变为< xsl:...>在输出中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |