2

我确信这真的很容易,我只是错过了一些简单的东西,但是......

我有一个主页 (index.html),我想链接到另一个 .xsl 文件的页面(以显示一些 xml 数据)。我正在使用这段代码来做到这一点:

<h1><a href="catalogue_overview.xsl">VIEW CATALOGUE</a></h1>

当我自己打开 .xsl 文件(我使用 Dreamweaver)时,它会打开并很好地显示数据(来自 xml 文件)。

当我从 index.html 页面上的链接打开它时,它只会向我显示<h>and<p>标签等中包含的未格式化文本。没有格式化,也没有 xml 数据。

我究竟做错了什么?

我是否需要告诉 index.html 文件一些信息以便它知道 .xsl 文件?

我做错了吗?

我以同样的方式链接到一个 PHP 文件,这似乎工作正常。

如果有帮助,我会发布我的代码!

文件

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="catalogue_overview.xsl"?>

<catalogue>
    <record>
        <catId>001</catId>
        <title>Fungus</title>
        <location>NP</location>
        <photographer>Me</photographer>
        <equipment>Canon EOS 40D</equipment>
        <caption>Small fungus of the genus Fungaroidiae on a log</caption>
        <notes>This is a very rare species of fungus</notes>
        <date>10/8/2012</date>
        <imageUrl>images/IMG_1684.jpg</imageUrl>
    </record>
</catalogue>

XSL 文件

<?xml version="1.0" encoding="UTF-8"?><!-- DWXMLSource="catalogue.xml" -->

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="UTF-8"/>
<xsl:template match="catalogue">
    <html> 
      <head> 
        <title>Photo Catalogue</title>

        <link rel="stylesheet" type="text/css" href="css/style.css"/>

     </head>
     <body>

     <h1 align="center"> Photo Catalogue</h1>
     <h2 align="center"> Catalogue Overview </h2>
     <p align="center"> This is an overview of the photo catalogue. It enables the user to have a quick and easy browse through the images and their information.</p>
     <hr/>

      <xsl:apply-templates/>

     </body>
    </html>

   </xsl:template>

    <xsl:template match="catId">
        <h2> Catalogue ID: <span style="color:2A588F"><xsl:apply-templates/>  </span> </h2>
    </xsl:template>

    <xsl:template match="title">
        <h3> Title: <span style="color:2A588F"><xsl:apply-templates/>  </span> </h3>
    </xsl:template>

    <xsl:template match="location">
        <p> Location: <span style="color:2A588F"><xsl:apply-templates/>  </span> </p>
    </xsl:template>

    <xsl:template match="photographer">
        <p> Photographer: <span style="color:2A588F"><xsl:apply-templates/>  </span> </p>
    </xsl:template>

    <xsl:template match="equipment">
        <p> Equipment: <span style="color:2A588F"><xsl:apply-templates/>  </span> </p>
    </xsl:template> 

    <xsl:template match="caption">
        <p> Caption: <span style="color:2A588F"><xsl:apply-templates/>  </span> </p>
    </xsl:template>

    <xsl:template match="notes">
        <p> Notes: <span style="color:2A588F"><xsl:apply-templates/>  </span> </p>
    </xsl:template>

    <xsl:template match="date">
        <p> Date: <span style="color:2A588F"><xsl:apply-templates/>  </span> </p>
    </xsl:template>

    <xsl:template match="imageUrl">
        <p>Image:<br/><img src="{.}" width="250"/></p>
        <hr/>
    </xsl:template>


 </xsl:stylesheet>

索引.HTML 文件

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Photo Catalogue - HOME</title>

 <link rel="stylesheet" type="text/css" href="css/style.css"/


</head>

<body>

<div class="container">
<div class="content">
    <h1>Photo Catalogue</h1>
    <h2>Welcome to the Photo Catalogue</h2>
    <p>It is intended to be a simple tool to store you favourite photos for easy viewing. It uses XML to store the image details and this is retrieved, displayed and edited using a combination of XSL and PHP.</p>
    <h2>Navigation</h2>
    <p>Select the option you would like below to see its functionality...</p>

    <h1><a href="catalogue_overview.xsl">VIEW CATALOGUE</a></h1>
    <h1><a href="catalogueupdate.php">EDIT CATALOGUE</a></h1>

</div>
</div>
</body>
</html>

希望这可以帮助

注意 .php 文件的链接似乎工作正常。我正在运行 XAMPP。

谢谢

4

1 回答 1

2

您应该链接到应呈现数据的 XML 文件。这意味着在您的 INDEX.HTML 更改中

<h1><a href="catalogue_overview.xsl">VIEW CATALOGUE</a></h1>

<h1><a href="catalogue.xml">VIEW CATALOGUE</a></h1>

然后 XML 文件确实通过以下方式引用 XSL 样式表

<?xml-stylesheet type="text/xsl" href="catalogue_overview.xsl"?>
于 2013-10-22T21:46:41.893 回答