1

我是标记语言的新手,需要显示一个 HTML 表格,将其转换为 XML,然后使用看起来与 HTML 相同的 XSL 显示它。这是 HTML 表格的一部分:

<table border="1"
cellpadding="5"
summary="Obesity and other statistics">
<tr>
    <th>State</th>
    <th>Obese adults</th>
    <th>Obese children and adolescents</th>
    <th>Median Household Income</th>
    <th>H.S Graduation rate</th>
</tr>
<tr>
    <td>Mississippi</td>
    <td>34.4%</td>
    <td>17.8%</td>
    <td>$36,919</td>
    <td>80.4%</td>
</tr>

4 列,多行,1 个标题行。有一个摘要(不是必需的,可以删除方便),单元格填充和边框。这是 XML 表的开头:

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="mg.xsl"?>

<data>
  <columns>
    <State>State</State>
    <Obese_adults>Obese adults</Obese_adults>
    <Obese_children_and_adolescents>Obese children and adolescents</Obese_children_and_adolescents>
    <Median_Household_Income>Median Household Income</Median_Household_Income>
    <H_S_Graduation_rate>H.S Graduation rate</H_S_Graduation_rate>
  </columns>
  <records>
    <record>
      <State>Mississippi</State>
      <Obese_adults>34.4%</Obese_adults>
      <Obese_children_and_adolescents>17.8%</Obese_children_and_adolescents>
      <Median_Household_Income>$36,919</Median_Household_Income>
      <H_S_Graduation_rate>80.4%</H_S_Graduation_rate>
    </record>

这是按照对我正在尝试做的事情可能或可能没有任何好处的指导方针进行转换的。也找不到任何关于它的作用或如何将它与 xsl 一起使用的明确解释。

这就是我所拥有的 XSL

<?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>
  <body>
  <h2></h2>
  <table border="1">
      <th>State</th>
      <th>Obese adults</th>
      <th>Obese children and adolescents</th>
      <th>Median Household Income</th>
      <th>H.S Graduation rate</th>
    </tr>
    <xsl:for-each select="data/records/record">
    <tr>
      <td><xsl:value-of select="State"/></td>
      <td><xsl:value-of select="Obese adults"/></td>
      <td><xsl:value-of select="Obese children and adolescents"/></td>
      <td><xsl:value-of select="Median Household Income"/></td>
      <td><xsl:value-of select="H.S Graduation rate"/></td>
    </tr>
    </xsl:for-each>
  </table>
  </body>
  </html>
</xsl:template>

</xsl:stylesheet> 

它是按照我找到的模板再次形成的。我知道它在做什么,但不知道它做错了什么以及为什么它不起作用。我会很感激一些帮助,特别是如果我离这样做的正确方法还很遥远。谢谢

编辑:顺便说一下,我得到的错误是“加载样式表时出错:XPath 解析失败:操作员预期:”。

4

1 回答 1

3

您的 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>
  <body>
  <h2></h2>
  <table border="1">
<tr>
      <th>State</th>
      <th>Obese adults</th>
      <th>Obese children and adolescents</th>
      <th>Median Household Income</th>
      <th>H.S Graduation rate</th>
    </tr>
    <xsl:for-each select="data/records/record">
    <tr>
      <td><xsl:value-of select="State"/></td>
      <td><xsl:value-of select="Obese_adults"/></td>
      <td><xsl:value-of select="Obese_children_and_adolescents"/></td>
      <td><xsl:value-of select="Median_Household_Income"/></td>
      <td><xsl:value-of select="H_S_Graduation_rate"/></td>
    </tr>
    </xsl:for-each>
  </table>
  </body>
  </html>
</xsl:template>

</xsl:stylesheet> 

应用于您的 XML 的输出将是;

<html>
   <body>
      <h2></h2>
      <table border="1">
         <tr>
            <th>State</th>
            <th>Obese adults</th>
            <th>Obese children and adolescents</th>
            <th>Median Household Income</th>
            <th>H.S Graduation rate</th>
         </tr>
         <tr>
            <td>Mississippi</td>
            <td>34.4%</td>
            <td>17.8%</td>
            <td>$36,919</td>
            <td>80.4%</td>
         </tr>
      </table>
   </body>
</html>
于 2013-10-21T06:52:00.150 回答