0

私は次のコード構造を持っています:

XML :

<?xml version="1.0"?>
<?xml-stylesheet href="transform.xsl" type="text/xsl"?>
<javancss>
  <date>2013-02-28</date>
  <time>16:59:00</time>
  <packages>
    <package>
      <name>Package 1</name>
      <classes>3</classes>
      <functions>21</functions>
      <ncss>283</ncss>
      <javadocs>20</javadocs>
      <javadoc_lines>111</javadoc_lines>
      <single_comment_lines>11</single_comment_lines>
      <multi_comment_lines>221</multi_comment_lines>
    </package>
    <package>
      <name>Package 2</name>
      <classes>12</classes>
      <functions>411</functions>
      <ncss>8476</ncss>
      <javadocs>380</javadocs>
      <javadoc_lines>2193</javadoc_lines>
      <single_comment_lines>1224</single_comment_lines>
      <multi_comment_lines>6070</multi_comment_lines>
    </package>
    <package>
</packages>

以下は、ファイルに適用される XSL 変換で、各パッケージ レコードが結果の HTML テーブルの 1 行に表示されます。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="xml"
            indent="yes"
            encoding="iso-8859-1"
            media-type="text/html"
            doctype-public="-//W3C//DTD HTML 4.0//EN"/>
<xsl:template match="/">
  <html>
  <body>
    <h2>Package List</h2>
    <table border="1">
      <tr bgcolor="#9acd32">
        <th>Name</th>
        <th>Classes</th>
    <th>Functions</th>
        <th>NCSS</th>
        <th>Javadocs</th>
        <th>Javadoc Lines</th>
    <th>Single Comment Lines</th>
      </tr>
      <xsl:for-each select="/javancss/packages/package">
        <tr>
          <td><xsl:value-of select="name"/></td>
          <td><xsl:value-of select="classes"/></td>
          <td><xsl:value-of select="functions"/></td>
          <td><xsl:value-of select="ncss"/></td>
          <td><xsl:value-of select="javadocs"/></td>
          <td><xsl:value-of select="javadoc_lines"/></td>
          <td><xsl:value-of select="single_comment_lines"/></td>
          <td><xsl:value-of select="multi_comment_lines"/></td>
        </tr>
      </xsl:for-each>
    </table>
  </body>
  </html>
</xsl:template>

</xsl:stylesheet>

どのブラウザでも出力を表示できません。どこで間違ったのか知りたいです。ありがとう。

4

1 に答える 1

1

うまくいかない理由を次に示します。

1) 実際に HTML を出力しているため、xsl:output メソッドを「xml」ではなく「html」に変更してみてください。

<xsl:output method="html" />

2) ファイルtransform.xslが XML ファイルと同じ場所にあることを確認します。

3) JLRishie がコメントで述べているように、XML ファイルが整形式で、すべてのタグが正しく閉じられていることを確認してください。

于 2013-04-15T07:45:56.703 に答える