我有以下表格:
<definitions devices="myDevice">
<reg offset="0x0000" mnem="someRegister">
<field mnem="someField" msb="31" lsb="24 />
...
</reg>
...
</definitions>
我想,XML是明确参照和使用XSLT,将XSLT转变为文件超文本,h 用于建筑(也可能是其他形式的)。
超文本有效,每个登记册编制一个表格,每个领域浏览:
... (header boilerplate removed)
<xsl:for-each select="definitions/reg">
<table>
<tr>
<th><xsl:value-of select="@offset"/></th>
<th><xsl:value-of select="@mnem"/></th>
</tr>
<xsl:for-each select="field">
<tr>
<td><xsl:value-of select="@msb"/>..<xsl:value-of select="@lsb"/></td>
<td><xsl:value-of select="@mnem"/></td>
</tr>
</xsl:for-each>
</table>
</xsl:for-each>
转而去的是.。 I m完全没有产生产出所需的空间:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="definitions/reg">
#define <xsl:value-of select="translate(@mnem, abcdefghijklmnopqrstuvwxyz , ABCDEFGHIJKLMNOPQRSTUVWXYZ )"/>
<xsl:text> </xsl:text>
<xsl:value-of select="@offset"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
我希望能产生产出:
#define SOMEREGISTER 0x0000
但我实际上得到:
#define SOMEREGISTER0x0000
我不理解,为什么我是在“ #”之后获得的空间,而不是经过变幻莫测之后的空间。 我尝试了一种简单的解决办法,它只是一个直线空间,结果相同。
我对这一点太新了,不知道Im a是否做了错误或(b)在tDOM上找到了一个限制。