我有一个包含元素和元素名称的XML文件。
我想将元素名称转换为元素,并用输入元素的匹配内容填充这些元素。
问题的关键是我会动态尝试。静态的整个过程我已经拥有后端的过程是动态的。假设输入是动态的。
输入示例:
<Parameter name="customer">customer</Parameter>
<Parameter name="Date">Date</Parameter>
<Parameter name="Budgetnumber">Budgetnumber</Parameter>
<Parameter name="External">External</Parameter>
<Parameter name="Target">Target</Parameter>
<Parameter name="Worker">Worker</Parameter>
<Parameter name="customer_number">1234567890</Parameter>
<Parameter name="DataPath">Data/Path/</Parameter>
<Parameter name="DUMMY">DUMMY</Parameter>
<Parameter name="FileName">File.Name</Parameter>
<Parameter name="document_number">123123</Parameter>
我的“不良” XSLT映射:
<parameter>
<xsl:for-each select="./*/Parameter">
<xsl:value-of select="local-name(.)"/> : <xsl:value-of select="."/>
</xsl:for-each>
</parameter>
我不是XSLT中的佼佼者,所以我希望有人可以帮助我获得以下示例输出:
<parameter>
<customer>customer</customer>
<Date>Date</Date>
<Budgetnumber>Budgetnumber</Budgetnumber>
<External>External</External>
<Target>Target</Target>
<Worker>Worker</Worker>
<customer_number>1234567890</customer_number>
<DataPath>Data/Path/</DataPath>
<DUMMY>DUMMY</DUMMY>
<FileName>File.Name</FileName>
<document_number>123123</document_number>
</parameter>
答案 0 :(得分:1)
这是构建xslt的方法。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<parameter>
<xsl:for-each select="Parameter">
<xsl:element name="{@name}">
<xsl:value-of select="text()" />
</xsl:element>
</xsl:for-each>
</parameter>
</xsl:template>
</xsl:stylesheet>
答案 1 :(得分:1)
您可以尝试:-
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<Parameter>
<xsl:apply-templates/>
</Parameter>
</xsl:template>
<xsl:template match="*[@name]">
<xsl:element name="{@name}">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>