我有一个XML(这里我只显示了一个片段,它有几个Control元素,
<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标记?我无法通过创建局部变量以及使用
来解决它 <input type="submit" value=<xsl:select="(//Property/@Value/text())"/>/>
请帮帮我。
答案 0 :(得分:1)
使用<xsl:attribute>
向标记添加属性:
<input type="submit">
<xsl:attribute name="value"><xsl:value-of select="./Properties/Property[@Name='value']/@Value" /></xsl:attribute>
</input>