<test>
<item id="001">
<name>foo</name>
</item>
<item id="002">
<name>bar</name>
</item>
<detail>
<itemid>001</itemid>
<yomigana>フー</yomigana>
</detail>
<detail>
<itemid>002</itemid>
<yomigana>バー</yomigana>
</detail>
</test>
上記のようなXML文書から次のようなcsvファイルをつくろうと考えています。
フー,foo
バー,bar
つまり、「item要素の属性idの値」と「itemid要素の値」が同じものを対にして並べたいのですが、
これがなんともxslでうまいやり方が書けません。
(※実際には、item要素とdetail要素が上記のようにいくつも並びます。
item要素やdetail要素の数は状態によって可変ですが、item要素とdetail要素は必ず1対1で存在します。)
どなたかご教示お願いします。
(※XML文書の構成改変はできません)
No.1ベストアンサー
- 回答日時:
XML/XSLド素人ですのでご容赦を。
二重ループで変数に退避した値と比べてマッチングしたみました。
数が多いと時間が掛かりそうなんでつかいものにならないかも。
<xsl:for-each select="test/item">
<xsl:variable name="id">
<xsl:value-of select="@id" />
</xsl:variable>
<xsl:for-each select="/test/detail">
<xsl:if test="$id=itemid">
<xsl:value-of select="yomigana" />
</xsl:if>
</xsl:for-each>
,<xsl:value-of select="name"/>
</xsl:for-each>
返信が大変遅くなって申し訳ありません。
回答ありがとうございます。
xslの変数は使用頻度が低く、あまり使ったことがありませんでした。
しかも固定値しかもてないイメージが強いため、
よく使うリテラルを埋めておくくらいのものとしか考えていませんでしたが、
こういう使い方をするのですね。
回答頂いた方法でうまくいきました。
大変ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- クレジットカード au PAY カード新規入会 残高チャージ クレジット使用で7000ポイントもらえる条件は? 1 2022/11/01 10:53
- その他(IT・Webサービス) html cssについて 3 2023/05/13 12:48
- 楽器・演奏 この二つの違いってなにですか?私がエレキギターでライブ配信するなら両者とも同じように使えますよね?Y 1 2023/07/02 11:29
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- クレジットカード クレジットカード リボ払いで5000円以上使用 一括で使用するのと同じように使えないでしょうか 2 2022/08/02 17:38
- Visual Basic(VBA) ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:16
- IT・エンジニアリング ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:17
- Visual Basic(VBA) Selenium Basicの件 5 2023/04/10 20:55
- 日用品・生活雑貨 竹ひしゃくを作りたい 2 2022/06/11 12:56
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Listからのnull要素を削除方法は?
-
getElementsByNameの要素数が取...
-
CPUの考え方を教えてください ...
-
XMLで要素が記述された順番に意...
-
バッチファイルでテキストファ...
-
昔Winnyってありましたけど、あ...
-
あせんうぶり言語
-
XSLで、XMLの空タグを制御したい。
-
VB6でXMLを作成しているのです...
-
SNMP リンクダウンとノードダ...
-
あるノードリストに、特定の名...
-
HTTPステータス 404 - There is...
-
コンテキストメニュークリック...
-
ノードの並び替え
-
ルート要素ノードが2個ある場合?
-
ノードとは
-
このエラー、何とかなりません...
-
html→xmlの変換
-
xmlファイルが上手にHTMLに変換...
-
Excel-VBAでXMLの複数ノードの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大規模行列の計算
-
XML:連番要素の全ての子要素にx...
-
MFCでのタブコントロールに...
-
フロートってなに?
-
element of surprise
-
hana no namae osiete kudasai.
-
VB2005でXMLデータから複数ある...
-
svgをhtmlに埋め込んで使いたい
-
getElementsByNameの要素数が取...
-
動的にメモリを確保した配列の...
-
Webページに関するさまざまな情...
-
cssで外部ファイルを読み込む
-
Listからのnull要素を削除方法は?
-
ASP.NETでツリービューを作成し...
-
HPビルダー2001で選んで流す。
-
どうあがいてもIE6のエンコード...
-
XMLはなぜ普及したのか?
-
XSLTの記述方法
-
HTMLでol、liで作成した長...
-
2つの行動の違い
おすすめ情報