1

シンプルな sitemap.xml ファイルがあります。

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
        <loc>"home page link"/</loc>
        <title>East Randolph Cabinet Shop</title>
        <level>level-1</level>
    </url>
    .
    .
    .
    </urlset>

次に、sitemap.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="/">
     <h2>Sitemap</h2>
     <ul>
     <xsl:for-each select="urlset/url">
      <li class="&lt;xsl:value-of select=&quot;level&quot;/&gt;"><a href="&lt;xsl:value-of select=&quot;loc&quot;/&gt;"><xsl:value-of select="title"/></a></li>
     </xsl:for-each>
    </ul>
    </xsl:template>

    </xsl:stylesheet>

次に、xml ファイルを xsl ファイルに変換し、結果をエコーするコードを sitemap.php ファイルに記述します。

<div id="content">
<?php
$xml = new DOMDocument;
$xml->load('sitemap.xml');
$xsl = new DOMDocument;
$xsl->load('sitemap.xsl');
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl);
echo $proc->transformToXML($xml);
?>

</div>

ブラウザに sitemap.php ファイルを表示すると、エコーされるのはすべて Sitemap の見出しまで<h2>Sitemap</h2>です。私は xsl に非常に慣れていないので、無知で申し訳ありませんが、xsl for-each ステートメントに何か問題があるように見えます。私は正しいですか?私はこれで立ち往生しています。どんな助けでも大歓迎です。

4

1 に答える 1