- - PR -
XSLTで困っています。
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-11-14 20:02
XML文書をHTML形式に変換するXSLTを作成中です。
以下のようなXML構造がについて、type属性が"B"のtoc-item要素の変換処理を、兄弟要素にtype属性"A"のtoc-item要素が存在する場合と、存在しない場合に分岐させたいと思っています。 [XML構造] <toc> <toc-item type="A"></toc-item> <toc-item type="B"></toc-item> <toc-item type="B"></toc-item> <toc-item type="B"></toc-item> </toc> type属性"B"のtoc-item要素の変換を行っているときに、ほかのtoc-itemの属性値を調べるにはどのような処理を行えばよいのでしょうか? |
|
投稿日時: 2005-11-14 21:28
親に上がってから下がる
"../toc-item/@type = 'A'" とか 2.2 基準点 http://www.infoteria.com/jp/contents/xml-data/REC-xpath-19991116-jpn.htm#axes "preceding-sibling::toc-item/@type = 'A'" -- 未テスト type B の処理に入る前に、/toc-item[@type = 'A'] を 変数に入れておくと type B の for-each が少し速くなるか? XSLTプロセッサの最適化能力は? [ メッセージ編集済み 編集者: MMX 編集日時 2005-11-14 21:35 ] |
|
投稿日時: 2005-11-14 23:30
MMXさま、すばやいご返答ありがとうございます。
親に上がってから下がる手法をとってみたところ、どうにかうまくいきそうです。 ただ、Aの出現位置が不明なので、条件文が長くなりそうなのがネックです。 少なくともBよりは前に出るので、Aが出た時点でフラグを立てておいて、B変換時にその値を参照したりできればいいんですが、変数を別々のtoc_item変換で共有する方法がよくわからなくて困っています。 XSLTプロセッサはMSXML4.0を使用しています。 初心者のため、最適化能力とかはわからないんですが…。 またなにかよい方法がありましたら、ご教授願います。 |
1