xml – xsl:value-of用作xsl:元素名称
发布时间:2020-12-16 07:59:29 所属栏目:百科 来源:网络整理
导读:我有一个带有列表结构的传入XML文件: list listItem nameelementOne/name valueelementOneValue/name /listItem listItem nameelementTwo/name valueelementTwoValue/name /listItem/list 我试图转换为这个结构: elementOneelementOneValue/elementOneelem
我有一个带有列表结构的传入XML文件:
<list> <listItem> <name>elementOne</name> <value>elementOneValue</name> </listItem> <listItem> <name>elementTwo</name> <value>elementTwoValue</name> </listItem> </list> 我试图转换为这个结构: <elementOne>elementOneValue</elementOne> <elementTwo>elementTwoValue</elementTwo> 这是使用XSL实现的简单逻辑,但我遇到了并发症. <xsl:for-each select="/list/listItem"> <xsl:element name="<xsl:value-of select="name"/>"> <xsl:value-of select="value"/> </xsl:element> </xsl:for-each> 不起作用,因为我假设顺序双引号打破< xsl:element>标签 <xsl:for-each select="/list/listItem"> <<xsl:value-of select="name"/>> <xsl:value-of select="value"/> </<xsl:value-of select="name"/>> </xsl:for-each> 不起作用,因为我不能使用<<或>>和 <xsl:for-each select="/list/listItem"> <<xsl:value-of select="name"/>> <xsl:value-of select="value"/> </<xsl:value-of select="name"/>> </xsl:for-each> 不起作用,因为我最终得到>和<在我的代码而不是XML parseable<或者>.我希望这是一个非常简单的解决方案,但我在互联网上找不到它的任何记录.我忽视的简单修复是什么?
这是一个完整而简短的解决方案,使用
<xsl:element> XSLT指令:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="listItem"> <xsl:element name="{name}"> <xsl:value-of select="value"/> </xsl:element> </xsl:template> </xsl:stylesheet> 当对提供的XML文档应用此转换时(已更正为格式正确): <list> <listItem> <name>elementOne</name> <value>elementOneValue</value> </listItem> <listItem> <name>elementTwo</name> <value>elementTwoValue</value> </listItem> </list> 产生了想要的结果: <elementOne>elementOneValue</elementOne> <elementTwo>elementTwoValue</elementTwo> 请注意: >使用< xsl:element>创建具有静态未知名称的元素的指令. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |