Я новичок в Xslt. Я читаю XML-данные, используя xslt. например
<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"/>
, я получаю значение название для поля эпохи. Кто-нибудь сталкивался с такой проблемой? или вы можете поделиться, как передать имя переменной вместо имени элемента для значения внутри цикла for-each?