例えば
<title>タイトルA</title>
<P>no1</P>
<P>no2</P>
<P>no3</P>
<P>no4</P>
<title>タイトルB</title>
<P>no5</P>
<P>no6</P>
<P>no7</P>
<P>no8</P>
というようなxmlがあったとします。
xslを適用して、
タイトルA
no1
no2
no3
no4
タイトルB
no5
no6
no7
no8
と表示するにはどのようにすればよいのでしょうか?
<xsl:for-each select="//P">
<P><value-of select="."/></P>
</xsl:for-each>
ではnoのみが表示され、タイトルが表示されず、また、
<xsl:for-each select="//title">
<P><xsl:value-of select="."/></P>
<xsl:for-each select="../P">
<P><xsl:value-of select="."/></P>
</xsl>
</xsl>
では、
タイトルA
no1
no2
no3
no4
no5
no6
no7
no8
タイトルB
no1
no2
no3
no4
no5
no6
no7
no8
となってしまいます。
No.1ベストアンサー
- 回答日時:
だいぶ経ってしまっているので、回答が役に立つのか分かりませんが、
一応書いておきます。
正確な意図が分かりにくいので、この回答が見当違いかもしれません。
<xsl:for-each select="//title">
<P><xsl:value-of select="."/></P>
<xsl:for-each select="../P">
<P><xsl:value-of select="."/></P>
</xsl>
</xsl>
と記述しようとしている場所に
<xsl:apply-templates select="//title | //P"/>
と記述しておいて、
<xsl:template match="title">
<!-- title要素に対する処理 -->
</xsl:template>
<xsl:template match="P">
<!-- P要素に対する処理 -->
</xsl:template>
というテンプレートを呼び出すようにすれば良いのでは?
もちろん、apply-templatesでtitle要素とP要素を区別しない点が
意図と異なるかもしれませんが。
この場合のデータ構造があまり良くないので、例えば
<Group>
<title>タイトルA</title>
<P>no1</P>
<P>no2</P>
<P>no3</P>
<P>no4</P>
</Group>
<Group>
<title>タイトルB</title>
<P>no5</P>
<P>no6</P>
<P>no7</P>
<P>no8</P>
</Group>
のようにデータ構造をより良いものにしてから、
という手もあります。
こうするとだいぶ処理が楽になります。
最後に、余計な忠告かもしれませんが、
xsl:for-eachにこだわり過ぎないで柔軟に考えた方が良いのでは、
と私は思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- Excel(エクセル) vba シート名の一覧を2列に分けるには 5 2023/04/24 08:56
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- Access(アクセス) MAXで0が出力される 1 2022/03/31 21:43
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- UNIX・Linux Linuxの実行結果を修正したいです。 2 2022/11/23 08:32
- 英語 there is no way to do/of doingの違いについて 1 2023/06/04 17:41
- 英語 不定代名詞"no..."の否定語noの及び範囲について 4 2022/08/04 11:11
- Oracle SQL update方法 2 2022/06/22 14:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
XSLで、XMLの空タグを制御したい。
-
XMLをXSLを使いHTMLに変換した...
-
XMLのHTMLへの変換 (初心者)
-
タグの有無の判定
-
スタイルシートを使用したXM...
-
XSL中の改行、タブを無効にした...
-
xmlのテキストにリンクを張りた...
-
u_shortなどの省略した宣言につ...
-
CPUの考え方を教えてください ...
-
東芝のDynabookなのですがアン...
-
ルート要素ノードが2個ある場合?
-
あるノードリストに、特定の名...
-
XMLで要素が記述された順番に意...
-
UTF-8でエンコーディングとはど...
-
VBSでxmlの値を書き換えたい
-
SNMP リンクダウンとノードダ...
-
双方向リストの関数
-
XMLで特殊文字を扱うにはどうし...
-
Windowsで見かけるxmlファイル...
-
XML同じ名前の要素を自動で集約...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
タグの有無の判定
-
XSLTで固定長データファイルを...
-
XSLTにてタグ名を取得する方法
-
XSLで、XMLの空タグを制御したい。
-
xmlの属性が重複しているのをx...
-
ノードの並び替え
-
XSL中の改行、タブを無効にした...
-
XMLのHTMLへの変換 (初心者)
-
xmlのテキストにリンクを張りた...
-
XMLをXSLを使いHTMLに変換した...
-
重複するものを消したい
-
空かスペースを認識させること...
-
スタイルシートを使用したXM...
-
XSLTがブラウザで表示されません。
-
XSL内でJavaScriptを記述し、Ja...
-
XMLとXSLTでリンクを張る方法
-
VBAからxml・スタイルシートを...
-
うまく表示されない
-
XML,XSL,JavaScriptの連携
-
XSLでの指定方法
おすすめ情報