我有以下xml
<phones>
<phone>
<code>+37529</code>
<number>8546632</number>
</phone>
<phone>
<code>+37517</code>
<number>4562389</number>
</phone>
</phones>
我需要获取以下html表
在此之前我有下一个html表
所以我的xsl文件就像
<table>
...
<xsl:for-each select="phones/phone">
<tr>
<td width="25%">Code</td>
<td width="25%">
<xsl:value-of select="code" />
 
</td>
<td width="25%">Number</td>
<td width="25%">
<xsl:value-of select="number" />
 
</td>
</tr>
</xsl:for-each>
...
</table>
现在我应该分割手机,我不知道如何使用旧的xml文件进行xslt转换。请帮我,建立正确的xsl文件。感谢。
答案 0 :(得分:0)
我“选择没有for-each的节点”的方式是使用模板。例如:
鉴于以下XML(根据您的意见,我冒昧地添加@type
):
<?xml version="1.0" encoding="ISO-8859-1"?>
<phones>
<phone type="Office">
<code>+37529</code>
<number>8546632</number>
</phone>
<phone type="Mobile">
<code>+37517</code>
<number>4562389</number>
</phone>
</phones>
以下XSL模板:
<xsl:template match="//phones">
<table><xsl:apply-templates /></table>
</xsl:template>
<xsl:template match="phone">
<tr>
<th colspan='4'><xsl:value-of select="@type" />:</th>
</tr>
<tr>
<th>Code</th><td><xsl:value-of select="code" /></td>
<th>Number</th><td><xsl:value-of select="number" /></td>
</tr>
</xsl:template>
提供所需的html表输出。 例如 http://xsltransform.net/gWmuiJn/1
如果要设置表格的宽度(样式),我建议使用CSS而不是width="25%"
。 例如 http://jsbin.com/woyaga/1/edit?html,css,output