我有这样的XML
<books>
<details ISBN="107887454323" Author="Lynda Green" Price="$56.00" />
......
</books>
XSL代码如下所示
<table>
<xsl:for-each select="books/details">
<tr class="boldFont">
<td class="paddingLeft18">
<xsl:value-of select="./@ISBN"/>
</td>
<td>
<xsl:value-of select="./@Author"/>
</td>
<td>
<xsl:value-of select="./@Price"/>
</td>
</tr>
</xsl:for-each>
</table>
价值观不会出现!我在这段代码中缺少什么?
答案 0 :(得分:2)
如果你想使用simplified stylesheet,Mathias帮助识别......
请务必添加xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
命名空间前缀和xsl:version="1.0"
声明。
此输入XML:
<?xml version = "1.0" encoding = "utf-8"?>
<books>
<details ISBN="107887454323" Author="Lynda Green" Price="$56.00" />
<details ISBN="107887454324" Author="John Green" Price="$99.00" />
</books>
提供给此XSLT转换:
<?xml version="1.0" encoding="utf-8"?>
<table xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xsl:version="1.0">
<xsl:for-each select="books/details">
<tr class="boldFont">
<td class="paddingLeft18">
<xsl:value-of select="@ISBN"/>
</td>
<td>
<xsl:value-of select="@Author"/>
</td>
<td>
<xsl:value-of select="@Price"/>
</td>
</tr>
</xsl:for-each>
</table>
将产生所需的输出XML:
<?xml version="1.0" encoding="UTF-8"?><table><tr class="boldFont"><td class="paddingLeft18">107887454323</td><td>Lynda Green</td><td>$56.00</td></tr><tr class="boldFont"><td class="paddingLeft18">107887454324</td><td>John Green</td><td>$99.00</td></tr></table>
虽然由于其局限性,您通常不会在这里看到简化的样式表表单,但简化的样式表在输出大量使用spa的情况下非常有用,但需要一些XPath引用来从输入XML文档中提取值。例如,我见过客户更喜欢简化的样式表来生成XSL-FO。