【问题标题】:why is my xml page not being displayed despite correct dtd and xsl?尽管 dtd 和 xsl 正确,为什么我的 xml 页面没有显示?
【发布时间】:2020-05-13 06:38:02
【问题描述】:

我正在尝试设计一个 xml 来显示大学学生的详细信息。学院由具有参数姓名、年龄和卷的学生组成。

这是我的 xml 文件

<?xml version="1.0"?>
<!DOCTYPE college SYSTEM "college.DTD">
<?xsl-stylesheet  type="text/xsl" href="college.XSL"?>

<college>

<student>
<name>vipul</name>
<age>16</age>
<roll>12</roll>
</student>

<student>
<name>vipul</name>
<age>16</age>
<roll>12</roll>
</student>

<student>
<name>vipul</name>
<age>16</age>
<roll>12</roll>
</student>

</college>

这是我的 xsl 文件

<?xml version="1.0"?>
<xsl-stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">

    <html>
    <head>
    <title>college</title>
    <head>

    <body>
    <table border="1" align="center">
    <tr bgcolor="yellow">
    <th>name</th>
    <th>age</th>
    <th>roll</th>
    </tr>

    <xsl:for-each select="college/student">
    <tr>
    <td><xsl:value-of select="name" /></td>
    <td><xsl:value-of select="age" /></td>
    <td><xsl:value-of select="roll" /></td>
    </tr>
    </xsl:for-each>
    </table>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>

最后这是我的外部 dtd 文件。这里我已经定义了相关的代码结构

<?xml version="1.0">
<!DOCTYPE college(student)>
<!ELEMENT student(name,age,roll)>
<!ELEMENT name(#PCDATA)>
<!ELEMENT age(#PCDATA)>
<!ELEMENT roll(#PCDATA)>

一切似乎都是正确的,但我没有得到我想要的 xml 输出。为什么会这样?

【问题讨论】:

    标签: xml xslt dtd


    【解决方案1】:

    您的文件有两个错误:

    1. 您的 DTD 文件无效。见this answer。它解释了外部 DTD 文件不能包含

      <!DOCTYPE college(student)>
      

      声明。所以您的 DTD 文件应该看起来像(我在您的 college 元素中添加了一个 + 以启用多个 student 子级)

      <?xml version="1.0" encoding="utf-8" ?>
      <!ELEMENT college (student+)>
      <!ELEMENT student (name,age,roll)>
      <!ELEMENT name (#PCDATA)>
      <!ELEMENT age (#PCDATA)>
      <!ELEMENT roll (#PCDATA)>
      
    2. 您的浏览器无法识别 XML 文件中指向 XSLT 代码的链接,因为您的声明中有错字。 XML 文件开头的正确拼写是

      <?xml-stylesheet... 
      

      而不是

      <?xsl-stylesheet....
      

    【讨论】:

      猜你喜欢
      • 2011-05-13
      • 1970-01-01
      • 2021-07-13
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 2016-03-05
      • 1970-01-01
      相关资源
      最近更新 更多