何方かご存知でしたら、ご教授下さい。
こんなXMLがあります。
<book>
<ジャンプ>200円</ジャンプ>
<マガジン>210円</マガジン>
<サンデー>200円</サンデー>
:
:(可変)
</book>
上記のXMLをHTMLでこのように表示します。
<table>
<tr>
<td>ジャンプ</td>
<td>200円</td>
</tr>
<tr>
<td>マガジン</td>
<td>210円</td>
</tr>
<tr>
<td>サンデー</td>
<td>200円</td>
</tr>
</table>
<book>の子ノードは可変で、どんな要素名がくるかわかりません。
このときにどのようなXSLTを作成すればよいでしょうか?
宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
好みの都合で余計なものいっぱいくっついているけど
=================Q4511114-1.xml(入力)===============
<?xml version="1.0" encoding="UTF-8"?>
<book>
<ジャンプ>200円</ジャンプ>
<マガジン>210円</マガジン>
<サンデー>200円</サンデー>
</book>
=================Q4511114-1.xsl(変換)=============
<?xml version="1.0" encoding="UTF-8"?>
<!--
教えてgooのシステムはURIっぽい文字列の前後にNO WIDTH SPACEをつけるため,回答をそのままコピーしても動きません
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
<xsl:output
method="xml"
version="1.0"
encoding="UTF-8"
omit-xml-declaration="no"
standalone="no"
doctype-public="-//W3C//DTD XHTML 1.1//EN"
doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
indent="yes"
media-type="text/xml"/>
<xsl:template match="/">
<html>
<head>
<title>Q4511114 TestCase 1</title>
</head>
<body>
<xsl:apply-templates />
</body>
</html>
</xsl:template>
<xsl:template match="book">
<table>
<xsl:for-each select="*">
<tr>
<td><xsl:value-of select="local-name(.)" /></td>
<td><xsl:value-of select="text()" /></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
==================Q4511114-2.xml(結果)============
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Q4511114 TestCase 1</title>
</head>
<body>
<table>
<tr>
<td>ジャンプ</td>
<td>200円</td>
</tr>
<tr>
<td>マガジン</td>
<td>210円</td>
</tr>
<tr>
<td>サンデー</td>
<td>200円</td>
</tr>
</table>
</body>
</html>
回答ありがとうございます。
特定のものにmatchさせてから、<xsl:for-each select="*">であるだけまわすんですね。
なんとなくコツがわかりました。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- Perl PERL 1 2022/04/26 14:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
XSLで、XMLの空タグを制御したい。
-
ノードの並び替え
-
タグの有無の判定
-
xslでの最小値、最大値の取得
-
xmlのテキストにリンクを張りた...
-
XMLのHTMLへの変換 (初心者)
-
CPUの考え方を教えてください ...
-
XMLで要素が記述された順番に意...
-
バッチファイルでテキストファ...
-
昔Winnyってありましたけど、あ...
-
あせんうぶり言語
-
VB6でXMLを作成しているのです...
-
SNMP リンクダウンとノードダ...
-
あるノードリストに、特定の名...
-
HTTPステータス 404 - There is...
-
コンテキストメニュークリック...
-
Listからのnull要素を削除方法は?
-
ルート要素ノードが2個ある場合?
-
ノードとは
-
このエラー、何とかなりません...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
XSLで、XMLの空タグを制御したい。
-
タグの有無の判定
-
XSLでXMLデータをタブ区切りデ...
-
XSLTで固定長データファイルを...
-
XSL中の改行、タブを無効にした...
-
xmlのテキストにリンクを張りた...
-
重複するものを消したい
-
XSLTがブラウザで表示されません。
-
うまく表示されない
-
文字列の取得
-
xsl:param要素をxsl:templateの...
-
value-ofの値を属性値とするには
-
XMLをXSLを使いHTMLに変換した...
-
XMLから指定テキストのみを抜き...
-
ある文字列を含むノードが存在...
-
VBAからxml・スタイルシートを...
-
xsl、xpath式の書き方について
-
XSLで特定のタグだけを出力する...
-
XSL内でJavaScriptを記述し、Ja...
-
XSLTで直下のテキストのみ取得...
おすすめ情報