すいません、再び質問があったのですが書く前に締め切ってしまいましたので新しく作らせていただきます。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2093554 …
のNo.4を見て書いてみたのですが、
IE---XSLTファイル内に書いてあるテーブルタグが動作しない、
Firefox---XSLTファイル内に直接書いてある文字が表示されない
という状態になってしまいました。
ちなみにXSLTファイルをFirefoxに放り込むと
「この XML ファイルにはスタイル情報が関連づけられていないようです。以下にドキュメントツリーを表示します。」
と表示されますが何か関係があるのでしょうか・・・?
No.2ベストアンサー
- 回答日時:
すみません
m(_ _)m
前の回答の一部が間違っていました。
function tramsform(xmlFile, xslFile, resultNodeID){
var xml, xslt, newDoc;
if(document.all){
xml = new ActiveXObject("Microsoft.XMLDOM");
xslt = new ActiveXObject("Microsoft.XMLDOM");
} else {
xml = document.implementation.createDocument("", "", null);
xslt = document.implementation.createDocument("", "", null);
}
xml.async = false;
xslt.async = false;
xml.load(xmlFile);
xslt.load(xslFile);
if(document.all){
document.getElementById(resultNodeID).innerHTML = xml.transformNode(xslt);
} else {
var xsltp = new XSLTProcessor();
xsltp.importStylesheet(xslt);
newDoc = xsltp.transformToFragment(xml, window.document);
document.getElementById('XML').innerHTML = "";
document.getElementById('XML').appendChild(newDoc);
}
}
に修正して下さい。
----------------------------------------------------------------
その上で、
XML部分について
<?xml-stylesheet type="text/xsl" href="all.xsl"?>
は、要りません。
----------------------------------------------------------------
XSLT部分について
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="Shift_JIS"/>
にする。
<html lang="ja">
<body>
と
</body>
</html>
を削除する
これで大丈夫だと思います。
No.4
- 回答日時:
#3>エラー「スタイルシートにドキュメント要素が含まれていません。
スタイルシートが空であるか、正しく構成されたXMLドキュメントでない可能性があります」もしかして
<?xml version="1.0" encoding="shift_jis" ?>
を削除していませんか?
#2の書き方が悪かったですが、これは要ります。
(encoding がUTF-8, UTF-16でない場合には)
No.3
- 回答日時:
>document.getElementById('XML').innerHTML = "";
>document.getElementById('XML').appendChild(newDoc);
も
document.getElementById(resultNodeID).innerHTML = "";
document.getElementById(resultNodeID).appendChild(newDoc);
の間違いですね。(; ;)、修正依頼も出したのにorz
ご返答ありがとうございます!
うまくいきました!!
ただ、
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="Shift_JIS"/>
に変更するとIEで
エラー「スタイルシートにドキュメント要素が含まれていません。スタイルシートが空であるか、正しく構成されたXMLドキュメントでない可能性があります」
と出ます。
こちらの文法のエラーかも知れませんが、回答いただけたらありがたいです。
No.1
- 回答日時:
XMLとして記述されたファイルと
XSLTとして記述されたファイルを
それぞれ補足することは可能ですか?
補足できないとすると書き方が違うんじゃないかぐらいしか回答できないと思います。
補足された場合でも、すぐには回答はできないかもしれませんけど。
(あるいは、私の能力を超えるようだとできないかもですけど)
この回答への補足
返信ありがとうございます。ご迷惑をおかけいたします。
XMLファイル(data.xml)は
<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet type="text/xsl" href="all.xsl"?>
<creation>
<game>
<name first="1">aaa</name>
<URL>t.html</URL>
<difficulty>★</difficulty>
<development>5</development>
<genre>??</genre>
<HowToPlay>0</HowToPlay>
<comment>・・・</comment>
<OS>XP</OS>
</game>
<game>
<name>---</name>
<URL>aaa.html</URL>
<difficulty>☆☆☆</difficulty>
<development>5</development>
<genre>その他</genre>
<HowToPlay>0</HowToPlay>
<comment>com</comment>
<OS>XP</OS>
</game>
<game>
<name first="1">運試し</name>
と続き、
</game>
</creation>
で終わります。
欄が無いのでここに。
XSLTファイルは数種類ありますが、メインのall.xslを載せます(名称などは変更しております)。
<?xml version="1.0" encoding="shift_jis" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html lang="ja">
<body>
<table>
<tr>
<th>作品名</th>
<th>難易度</th>
<th>開発</th>
<th>遊び方</th>
<th>コメント</th>
<th>対応OS</th>
</tr>
<xsl:apply-templates select="creation/game" />
</table>
</body>
</html>
</xsl:template>
<xsl:template match="game">
<tr>
<td>
<a>
<xsl:attribute name="href">
<xsl:value-of select="URL" />
</xsl:attribute>
<xsl:value-of select="name" />
</a>
</td>
<td align="left">
<xsl:value-of select="difficulty" />
</td>
<xsl:choose>
<xsl:when test="development[. = 5]">
<td>Win</td>
</xsl:when>
<xsl:when test="development[. = 1]">
<td>a</td>
</xsl:when>
<xsl:when test="development[. = 2]">
<td>k</td>
</xsl:when>
<xsl:when test="development[. = 3]">
<td>j</td>
</xsl:when>
<xsl:when test="development[. = 4]">
<td>c</td>
</xsl:when>
</xsl:choose>
<td>
<xsl:if test="HowToPlay[. != string(0)]">
<a>
<xsl:attribute name="href">
<xsl:value-of select="HowToPlay" />
</xsl:attribute>
遊び方
</a>
</xsl:if>
</td>
<td>
<xsl:value-of select="comment" />
</td>
<td>
<xsl:value-of select="OS" />
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
となっております。
拙いものですいません・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelのマクロについてご教授ください 2 2023/02/25 09:43
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/06/23 15:02
- HTML・CSS HTMLを正しく表示させるには 2 2023/06/18 09:12
- 画像編集・動画編集・音楽編集 inkscapeで作成した図の保存の仕方とその保存したファイルの編集の仕方 1 2022/09/22 09:33
- Visual Basic(VBA) vba メモリ節約 3 2022/09/16 21:45
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Firefox(ファイヤーフォックス) Firefoxでグーグルの検索画面が変です 2 2022/09/20 19:25
- ノートパソコン EXCEL のドキュメントの回復について 2 2023/03/19 17:16
- ホームページ作成・プログラミング 保存したホームページのファイルは何をしている推測できますでしょうか。 1 2023/08/18 15:50
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
XML、XSLTの適応エラー(IEから...
-
XMLで要素が記述された順番に意...
-
SNMP リンクダウンとノードダ...
-
同じタグ名の項目取得
-
CPUの考え方を教えてください ...
-
バッチファイルでテキストファ...
-
タグの有無の判定
-
XSLTにてタグ名を取得する方法
-
東芝のDynabookなのですがアン...
-
このエラー、何とかなりません...
-
要素の中にハイパーリンクを書く
-
xmlの出力をShift_JISで
-
ルート要素ノードが2個ある場合?
-
昔Winnyってありましたけど、あ...
-
C#でtreeviewの指定ノードを選...
-
順不同・任意のタグ
-
あるノードリストに、特定の名...
-
C言語のプログラムを教えてくだ...
-
xmlのテキストにリンクを張りた...
-
UTF-8でエンコーディングとはど...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
XML、XSLTの適応エラー(IEから...
-
xmlファイルが上手にHTMLに変換...
-
XSLT
-
xalan でエラーが出るんですが。
-
XSLTでの正規表現判定
-
不特定ノードに出現する同じタ...
-
XML+XSLTでの表示について
-
XMLを勉強中なのですが・・・
-
東芝のDynabookなのですがアン...
-
CPUの考え方を教えてください ...
-
昔Winnyってありましたけど、あ...
-
SNMP リンクダウンとノードダ...
-
XMLで要素が記述された順番に意...
-
ルート要素ノードが2個ある場合?
-
バッチファイルでテキストファ...
-
UTF-8でエンコーディングとはど...
-
あるノードリストに、特定の名...
-
google croud にあるファイルを...
-
XPathで途中に名前空間が設定さ...
-
特殊記号が勝手にエスケープさ...
おすすめ情報