2013-10-21 53 views
1

我是標記語言的新手,需要顯示HTML表格,將其轉換爲XML,然後使用與HTML相同的XSL顯示它。下面是一些HTML表格:用XSL顯示XML文件看起來像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解析失敗:運算符預期:」順便說一句。

回答

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> 
+1

謝謝,我剛剛完成修復它,也擺脫了在XML索引。重新排列它以匹配xsl,它都可以工作 – Jake