Xslt XSL将每个
我有如下的xml:Xslt XSL将每个,xslt,xslt-1.0,Xslt,Xslt 1.0,我有如下的xml: <field index="1" name="my_field_1" type="String"> <value>Value of Field 1</value> </field> <field index="2" name="my_field_2" type="String"> <value>Value of Field 2</value> </field> <fiel
<field index="1" name="my_field_1" type="String">
<value>Value of Field 1</value>
</field>
<field index="2" name="my_field_2" type="String">
<value>Value of Field 2</value>
</field>
<field index="3" name="my_field_3" type="String">
<value>Value of Field 3</value>
</field>
字段1的值
字段2的值
字段3的值
在以后的for-each中,我迭代这些字段,并尝试获取字段的名称(相同),并将其与index属性(取决于可能变化的元素数量)连接起来
我尝试了这个方法(我在变量中加了撇号,因为我不知道如何转义它)
'
问题是,它输出的不是选择值,而是字符串my_field_1。
输出应该是字段1的值、字段2的值等等。我需要的是动态地将name属性与index属性关联起来。下面的转换
<?xml version="1.0" encoding="UTF-8"?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="field">
<xsl:value-of select="value" />
</xsl:for-each>
</xsl:template>
</xsl:transform>
应用于此输入
<?xml version="1.0" ?>
<root>
<field index="1" name="my_field_1" type="String">
<value>Value of Field 1</value>
</field>
<field index="2" name="my_field_2" type="String">
<value>Value of Field 2</value>
</field>
<field index="3" name="my_field_3" type="String">
<value>Value of Field 3</value>
</field>
</root>
字段1的值
字段2的值
字段3的值
产生所需的输出
<?xml version="1.0"?>
Value of Field 1Value of Field 2Value of Field 3
字段1的值字段2的值字段3的值
我希望这有帮助。否则,请在评论中给我一个提示。答案相当简单:
这段代码采用索引attr并将其与名称关联。我认为如果您给出一个示例,说明您希望输出是什么样子会很有帮助。我将xml更新为:字段1的值字段2的值,因此输出将是字段1的值,字段2的值等等。我想我得到了它。:-)HI@heilsnoppe我需要更清晰,我需要使用索引,并用字段名连接它。因为有更多的领域,我只对其中的几个感兴趣。因此,在xsl中,我希望使用所有字段的名称,并向它们添加索引。之所以使用索引,是因为xml是自动生成的,索引的值可以从0到n。如果有意义的话。也许你可以更新你的例子,使它准确地反映你的输入和你想要的输出?对不起,我不清楚我找到了答案。我将更新问题,并添加答案。
<?xml version="1.0"?>
Value of Field 1Value of Field 2Value of Field 3