2013-05-03 46 views
0

我有一个XML(在这里我仅显示一个片段,它有几个控制元素创建HTML标签,使用XSLT

<Control Name="submit" ID=""> 
    <Properties> 
    <Property Name="id" Value="btn_Submit" /> 
    <Property Name="value" Value="Submit" /> 
    </Properties> 
    </Control> 

,我想通过获得HTML作为

<html> 
<head> 
    <title>example_htmlPage</title> 
</head> 

<body> 
    <input id="btn_Submit" type="submit" value="Submit"/> 
</body> 
</html>      

XSLT。我写了XSLT作为

<?xml version="1.0" encoding="ISO-8859-1"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:template match="/"> 
    <html> 
    <head> 
     <title>example_htmlPage</title> 
    </head> 

    <body> 
     <xsl:apply-templates/> 
    </body> 
    </html> 
</xsl:template> 
<xsl:template match="/"> 
    <xsl:for-each select="//Control[@Name='submit']"> 
     <input type="submit" value="//Property/@Value/text()"/> 
    </xsl:for-each> 
    <xsl:apply-templates/> 
</xsl:template> 
</xsl:stylesheet> 

所以,我的问题是如何获得一个属性的值转换成HTML标签?我可以nt通过创建局部变量以及通过使用来解决它

<input type="submit" value=&lt;xsl:select="(//Property/@Value/text())"/&gt;/> 

请帮助我。

回答

1

使用<xsl:attribute>添加属性标签:

<input type="submit"> 
    <xsl:attribute name="value"><xsl:value-of select="./Properties/Property[@Name='value']/@Value" /></xsl:attribute> 
</input> 
+0

是表示在没有任何名称的按钮。 – Aditya 2013-05-03 11:29:16

+0

@Aditya:固定,现在可以工作。 – Pino 2013-05-03 11:36:50

+0

是的。非常感谢:-) – Aditya 2013-05-03 11:51:48