我是Xslt的新手,可以使用xslt读取xml数据。例如
<head>
<root>
<data>
<Name>xxx</Name>
<age>10</age>
</data>
<data>
<Name>yyy</Name>
<age>20</age>
</data>
<data>
<Name>zzz</Name>
<age>15</age>
</data>
</root>
</head>
当我尝试在xslt以下使用
<xsl:template match="head">
<xsl:element name="Root1">
<xsl:for-each select="//head/root/data">
<xsl:element name="name">
<xsl:value-of select="$select_Name"/>
</xsl:element>
<xsl:element name="age">
<xsl:value-of select="$select_age"/>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template>
我的c#代码是
XslTransform xsl=new XslTransform();
xsl.Load("xsltfile");
xsl.Transform("inputxml.xml","outputxml.xml");
当我使用上面的xslt文件时,我没有得到正确的输出。而当我将元素的xpath赋给另一个xslt文件中的变量并将xslt包含到此xslt中并传递变量名而不是像这样的硬编码值<xsl:value-of select="$select_Name"/>
时,而$ name被声明为<xsl:variable name="select_Name" select="//head/root/data/Name"/>
im获取“年龄”字段的名称值。有人遇到这种问题吗?还是可以分享在for-each循环中如何通过变量名而不是元素名来传递值?