使用XSLT创建HTML标记

时间:2013-05-03 11:13:38

标签: xslt

我有一个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=&lt;xsl:select="(//Property/@Value/text())"/&gt;/>

请帮帮我。

1 个答案:

答案 0 :(得分:1)

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

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