xmlとxsltを使って、htmlを吐き出しているのですが、
<xsl:output indent="yes"/>
indent="yes"を入れてもindentされません。
xsltは下記になります。
<?xml version="1.0" encoding="shift_jis"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="id" />
<xsl:output
method="xml"
standalone="yes"
encoding="Shift_JIS"
omit-xml-declaration="yes"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
indent="yes"
/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>KDS</title>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<link rel="stylesheet" href="/css/style.css" type="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<script type="text/javascript" src="/js/snavi_case.js"><xsl:comment>//</xsl:comment></script>
</head>
<body>
<xsl:apply-templates select="info/group/page[@fileId='pteach' and @fileId = $id]" mode="main"/>
</body>
</html>
</xsl:template>
<xsl:template match="info/group/page" mode="main">
<xsl:value-of select="title"/>
<table width="539" border="1">
<xsl:apply-templates select="teacher[position() mod 3 = 1]"/>
</table>
</xsl:template>
<xsl:template match="teacher">
<tr>
<td><xsl:value-of select="name"/>:<xsl:value-of select="subject"/></td>
<td><xsl:value-of select="following-sibling::teacher[1]/name"/>:<xsl:value-of select="following-sibling::teacher[1]/subject"/></td>
<td><xsl:value-of select="following-sibling::teacher[2]/name"/>:<xsl:value-of select="following-sibling::teacher[2]/subject"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>
ただ、<html>~<body>と</body>~</html>はしっかりとソースがインデントされるのですが、<xsl:apply-templates select="info/group/page[@fileId='pteach' and @fileId = $id]" mode="main"/>で読み込んだところ以降のindentが全くきいていないようです。
こんな感じになります。
<html>
<title></title>
<body>#ここまではindentは正常
<table><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr></table>
#indentが効いていない!
</body>
</html>
どなたか同じような状況になられた方、
いらっしゃいませんでしょうか。
No.3ベストアンサー
- 回答日時:
#2については自己解決しました。
後は質問者様の補足待ちです$Idの件も聞きたいし[XML]
<title>
</title>
<!-- ここに文字列を入れました-->
[XSLT]
<xsl:template match="info/group/page" mode="main">
<xsl:value-of select="title"/> <!-- これのせいだったようです。ここをコメントアウトしたら解決しました。また、p要素等として括ってあげてもうまくいくことを確認しました -->
#2のソース、Gooの仕様上,数値文字参照に変換されちゃってますが,
XSLTをどうなおせばいいかは質問者様なら想像つきますよね
ご回答ありがとうございます!!
超凡ミスでした。
お手数掛けました。
<xsl:param name="id" />なんですが、
前回使用したxsltファイルの削除ミスです。
申し訳ありませんでした。
No.2
- 回答日時:
→<body> <table width="539" border="1" xmlns="">
ここが変だな。見直してみる。後、
<html xmlns="http://www.w3.org/1999/xhtml">
ではなく
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
<xsl:param name="id" />
とするつもりだったんじゃないかな?関係ないけど。(table要素に名前空間宣言が追加されている)
No.1
- 回答日時:
<?xml version="1.0" encoding="UTF-8"?>
<info>
<group>
<page fileId="pteach">
<!--
XSLTのソースを書いてくるなら一緒にXMLのサンプルソースくらい作ってくれたっていいだろ~
ってちょっとなきたくなったよ
俺の経験不足だと思うが
トップレベルにxsl:paramを置くとどんなメリットがあるのか聞きたい(xsl:variableではないんだよね?)
変換ができなかったのでand @fileId = $idを削らせていただいた。
-->
<title>
</title>
<!--
名前はすべて仮名。命名センスが悪いとか言わないこと。
-->
<teacher>
<name>山田信夫</name>
<subject>英語</subject>
</teacher>
<teacher>
<name>木田淳</name>
<subject>数学</subject>
</teacher>
<teacher>
<name>島義博</name>
<subject>英語</subject>
</teacher>
<teacher>
<name>山口正</name>
<subject>倫理</subject>
</teacher>
<teacher>
<name>広山進</name>
<subject>情報</subject>
</teacher>
<teacher>
<name>桃山博美</name>
<subject>現代文</subject>
</teacher>
<teacher>
<name>春日芳樹</name>
<subject>音楽</subject>
</teacher>
</page>
</group>
</info>
========eXtyle(MSXML)を用いた変換結果(きちんとインデントされている)====
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>KDS</title>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<link rel="stylesheet" href="/css/style.css" type="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<script type="text/javascript" src="/js/snavi_case.js"><!--//--></script>
</head>
<body> <table width="539" border="1" xmlns="">
<tr>
<td>山田信夫:英語</td>
<td>木田淳:数学</td>
<td>島義博:英語</td>
</tr>
<tr>
<td>山口正:倫理</td>
<td>広山進:情報</td>
<td>桃山博美:現代文</td>
</tr>
<tr>
<td>春日芳樹:音楽</td>
<td>:</td>
<td>:</td>
</tr>
</table>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字列の取得
-
XMLをXSLを使いHTMLに変換した...
-
XMLデータを動的に使用する
-
xmlからの表示
-
XSLで特定のタグだけを出力する...
-
XSLでノードの順番取得
-
<xsl:apply-templates />単独
-
xsl、xpath式の書き方について
-
XSLTのselectの指定
-
xmlの複数条件で検索
-
スマートなxsltの記述方法
-
CPUの考え方を教えてください ...
-
XMLで主キーを自動的に入力する...
-
robots.txtの設置場所
-
XML同じ名前の要素を自動で集約...
-
rdfをIE7に認識させるには
-
東芝のDynabookなのですがアン...
-
VBAのXML処理でメモリが足りない?
-
コンテキストメニュークリック...
-
C#でtreeviewの指定ノードを選...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
タグの有無の判定
-
XSLで、XMLの空タグを制御したい。
-
スタイルシートを使用したXM...
-
XMLのHTMLへの変換 (初心者)
-
ノードの並び替え
-
XSL内でJavaScriptを記述し、Ja...
-
xmlのテキストにリンクを張りた...
-
xml→htmlへの変換&ページ分割...
-
空かスペースを認識させること...
-
XSLTにてタグ名を取得する方法
-
XMLとXSLTでリンクを張る方法
-
XSL中の改行、タブを無効にした...
-
重複するものを消したい
-
xslでの最小値、最大値の取得
-
スタイルシートについて
-
■XSLT■固定文字を使ったループ...
-
javaのTransformerでエラー
-
for-eachが上手くいきません
-
XMLデータを動的に使用する
-
XSLTで固定長データファイルを...
おすすめ情報