0

我有如下所示的 xml 文件:

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pointList SYSTEM "point.dtd">
<pointList>
<point unit="mm">
<x>2</x>
<y>3</y>
</point>
<point unit="cm">
<x>9</x>
<y>3</y>
</point>
<point unit="px">
<x>4</x>
<y>7</y>
</point>
</pointList>

使用 XSLT 我将其转换为 html 文件:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>

    <xsl:template match = "/pointList">
    <table border = "1"><xsl:apply-templates/></table>
    </xsl:template>
    <xsl:template match = "/pointList/point">
    <tr><xsl:apply-templates/></tr>
    </xsl:template>
    <xsl:template match="pointList/point/x">
    <td><xsl:value-of select="text()"/></td>
    </xsl:template>
    <xsl:template match="pointList/point/y">
    <td><xsl:value-of select="text()"/></td>
    </xsl:template>

</xsl:stylesheet> 

现在我的 html 看起来像这样:

<table border="1">

<tr>

<td>2</td>
<td>3</td>

</tr>

<tr>

<td>9</td>
<td>3</td>

</tr>

<tr>

<td>4</td>
<td>7</td>

</tr>

</table>

但我还有一件事要做,我被困住了。我的 xml 文件中有 unit 属性。我必须将单位的值添加到每个点,所以它看起来像这样:2mm 3mm 9cm 3 cm 4px 7 px。谁能告诉我应该如何修改我的 xslt 文件以便得到我想要的?谢谢

4

1 回答 1

3

改变

<xsl:template match="pointList/point/x">
  <td><xsl:value-of select="text()"/></td>
</xsl:template>

<xsl:template match="pointList/point/y">
  <td><xsl:value-of select="text()"/></td>
</xsl:template>

<xsl:template match="pointList/point/*">
  <td><xsl:value-of select="concat(text(), ../@unit)"/></td>
</xsl:template>
于 2012-05-04T13:29:17.790 回答