プロが教えるわが家の防犯対策術!

あるXML形式のXSL用に次のようにスタイルシートを作成致しました。(例)
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" version="4.01" encoding="UTF-8" indent="yes" />

<xsl:template match="/">
<html lang="ja">
<head>
<title>○○情報</title>
</head>
<body><xsl:apply-templates select="ProductInfo"/></body>
</html>
</xsl:template>

<xsl:template match="Responce/Details"/>
<h2><xsl:value-of select="Hid"/></h2>
<h2><xsl:value-of select="TotalItems"/></h2>
<h2><xsl:value-of select="TotalPages"/></h2>
<h3><xsl:value-of select="ItemID"/></h3>
<h3><xsl:value-of select="ShopID"/></h3>
<h3><xsl:value-of select="ProductName"/></h3>
<h3><xsl:value-of select="Price"/></h3>
<h3><xsl:value-of select="ImageUrlSmall"/></h3>
<h3><xsl:value-of select="ImageUrlMedium"/></h3>
<h3><xsl:value-of select="mageUrlLarge"/></h3>
<h3><xsl:value-of select="URL"/></h3>
<h3><xsl:value-of select="MobileURL"/></h3>
<h3><xsl:value-of select="Manufacture"/></h3>
<h3><xsl:value-of select="Availability"/></h3>
<h3><xsl:value-of select="Stock"/></h3>
<h3><xsl:value-of select="StockInfinity"/></h3>
<h3><xsl:value-of select="ItemDetail"/></h3>
<h3><xsl:value-of select="SalesStatus"/></h3>
<h3><xsl:value-of select="CategoryID"/></h3>
</xsl:template>
</xsl:stylesheet>
とスタイルシートを作成いたしました。
変換するHMLは
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="○○.xsl"?>
- <ProductInfo>
- <Responce>
<Hid>○○○○</Hid>
<TotalItems>○○○○</TotalItems>
<TotalPages>○○○○</TotalPages>
- <Details>
<ItemID>○○○○</ItemID>
<ShopID>○○○○</ShopID>
<ProductName>○○○○</ProductName>
<Price>○○○○</Price>
<Manufacture>○○○○</Manufacture>
<Availability>○○○○</Availability>
<Stock>0○○○○</Stock>
<StockInfinity>○○○○</StockInfinity>
<ItemDetail>○○○○</ItemDetail>
<SalesStatus>○○○○</SalesStatus>
<CategoryID>○○○○</CategoryID>
</Details>
</Responce>
</ProductInfo>
以下<Details>のみ複数繰り返しされます。

この通りに作成したのですが、XMLファイルをウインドウに表示しようとしてもエラーが報告されます。
XSLに繰り返し用のタグを入れても、まったく表示されません。
ちなみにIE7を使用しています。

もし間違っている箇所が分かる方がいらっしゃいましたら、教えていただけませんか?
よろしくお願いいたします。

A 回答 (2件)

<!--


エラーメッセージを読もう。
Firefoxでは
XMLファイルを読み込むとエラーが出た。
Error Parsing XSLT stylesheet,つまりXSLT側に問題があるとわかった。

・・・ので整形式になってないんだろうな、と予想して
XSLTファイルのみを読み込んでエラーメッセージを再確認。

<xsl:template match="Responce/Details"/>
間違えて閉じちゃっている
正しくは・・・
-->
<xsl:template match="Responce/Details">
    • good
    • 0
この回答へのお礼

ありがとうございます。直したところFirefoxでは表示することが出来ました。
ですがIEではXSLは表示されるんですが、XMLは表示することが出来ません。
エラーメッセージを見たのですが、
「ドキュメントの最上位では無効です」
と出てしまいます。
この内容のエラーの解決方法がお分かりでしたらぜひ、教えていただきたいと思いますので、よろしくお願いいたします。

お礼日時:2007/10/19 11:03

>ドキュメントの最上位では無効です



結果が異なるはずはないんだけどな。どっちもエラーになるか
どっちも成功するか。
まさかとは思うが
- <ProductInfo>
↑ここやその他の場所のハイフン実際に入力してたりしないよね?
あれはIEが「子要素のある要素」を示す際に利用しているだけだからね。

#文字コードはあっているものとする
    • good
    • 0
この回答へのお礼

ハイフンは外しています。文字コードも統一しているんですが、
やはりIE7を使用しているのが関係しているんですかね?

すぐ返答していただきありがとうございます。

お礼日時:2007/10/19 13:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!