将XML插入HTML样式时间表

时间:2014-06-10 22:58:38

标签: javascript html xml web

我对XML很新,并且在HTML中使用它基本上我正在为学校创建一个时间表,首先通过定义一些表头来创建表,然后为给定的学生定义行。

为了让事情更清楚,我的一些源代码: 第一个是表头

   <tr>
        <th>Student</th>
        <th>9</th>
        <th>10</th>
        <th>11</th>
        <th>12</th>
        <th>1</th>
        <th>2</th>
        <th>3</th>
        <th>4</th>
        <th>5</th>
    </tr>

接下来学生的行

<tr>
        <th>David</td>
            <td>TBA</td>
            <td>TBA</td>
            <td>TBA</td>
            <td>TBA</td>
            <td>TBA</td>
            <td>TBA</td>
            <td>TBA</td>
        </div>
    </tr>

我的xml数据文件看起来主要是这样的:

 David
 Lesson:English 
Start:9
 End:10
 /David

通常我只是想知道在时间表中实现XML的最佳方法是什么?特别是因为我对使用XML非常新,所以非常感谢这个问题的任何信息/源代码。特别是学生应该能够看到他们的课程何时开始和结束。我已经看了几个例子,但是当试图实现我的HTML时,似乎碰到了一堵砖墙。

1 个答案:

答案 0 :(得分:0)

您拥有的示例中的XML数据文件可能不是有效的XML - 但我已检查(已解析) 确保下面的XML有效。

注意:

要仅选择具有特定开始时间的课程,请参阅本文档末尾的XSLT。

您可以使用XSLT样式表将XML转换为HTML。这是一个例子 你使用过的一些领域。

如果您有此XML(示例):注意:这只是现有表的一部分示例。 输出HTML需要位于 table块中。

示例输入XML文档:

<lessons>
  <lesson>
    <name>David</name>
    <description>English</description>
    <start>9</start>
    <end>10</end>
  </lesson>
  <lesson>
    <name>John</name>
    <description>Spanish</description>
    <start>13</start>
    <end>15</end>
  </lesson>
</lessons>

此XSLT样式表可用于生成HTML片段。您可以将其扩展为完整的HTML文档。

<?xml version="1.0" encoding="WINDOWS-1252"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output omit-xml-declaration="yes" method="xml" indent="yes"/>
  <xsl:strip-space elements="*"/>
  <xsl:template match="/">
    <tr>
      <th>NAME</th>
      <th>START</th>
      <th>END</th>
    </tr>
    <tr>
      <xsl:for-each select="/lessons/lesson">
        <tr>
          <td>
            <xsl:value-of select="name"/>
          </td>
          <td>
            <xsl:value-of select="start"/>
          </td>
          <td>
            <xsl:value-of select="end"/>
          </td>
        </tr>
      </xsl:for-each>
    </tr>
  </xsl:template>
</xsl:stylesheet>

当XML文档传递给转换时,上面的XSLT样式表将输出此HTML片段;我使用ORACLE PL / SQL使用上面的XML和XSLT进行测试转换;输出HTML片段仅包含名称,开始和结束节点的行。

<tr>
  <th>NAME</th>
  <th>START</th>
  <th>END</th>
</tr>
<tr>
  <tr>
    <td>David</td>
    <td>9</td>
    <td>10</td>
  </tr>
  <tr>
    <td>John</td>
    <td>13</td>
    <td>15</td>
  </tr>
</tr>

此输出HTML基于输入XML文档的格式(上图)..

以下是一个示例,如果您只想报告课程的开始时间为9:

<?xml version="1.0" encoding="WINDOWS-1252"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output omit-xml-declaration="yes" method="xml" indent="yes"/>
  <xsl:strip-space elements="*"/>
  <xsl:template match="/">
    <tr>
      <th>NAME</th>
      <th>START</th>
      <th>END</th>
    </tr>
    <tr>
      <xsl:for-each select="/lessons/lesson/start[text()='9']">
        <tr>
          <td>
            <xsl:value-of select="../name"/>
          </td>
          <td>
            <xsl:value-of select="../start"/>
          </td>
          <td>
            <xsl:value-of select="../end"/>
          </td>
        </tr>
      </xsl:for-each>
    </tr>
  </xsl:template>
</xsl:stylesheet>