- - PR -
XSLでの条件文(if文)
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-12-21 19:03
XSLで「もしAでないかBでないかCでないかDでないなら表示」を実現させたいのですがうまくいきません。
具体的には <xsl:if test="親NODE/子NODE!='0'" or test="親NODE/子NODE!='100'" or test="親NODE/子NODE='1300'" or test="親NODE/子NODE='1700'"> とか <xsl:if test="親NODE/子NODE!='0'or'100'or'1300'or'1700'"> とか <xsl:if test !="親NODE/子NODE='0'" or test !="親NODE/子NODE='100'" or test !="親NODE/子NODE='1300'" or test !="親NODE/子NODE='1700'"> などと記述してはみたもののうまくいきません。 どなたか解る方いらっしゃいましたら ご教示ください。お願いします。 | ||||||||||||
|
投稿日時: 2004-12-21 20:43
るぱんです。
やりたい事は以下のようなものであってますか? コピペして試してみて下さい。 無理にxsl:if使うと混乱します。 switch-caseに相当するxsl:chose-xsl:whenでどうでしょう? 動作は確認してます。 配置:
TEST.xml
TEST.xsl
最近XMLやってないから腕が鈍ったなぁ。。。 これ作るのに10分かかってる(爆) | ||||||||||||
|
投稿日時: 2004-12-22 10:48
choose文を使ってできました!ありがとうございました!!
今現在は、似たような条件分岐 「もしnodeAがnodeBと同じでないなら表示」 という事を実現させたいのですが、 <xsl:if test="nodeA != nodeB"> で、エラーは出ないのですが nodeAとnodeBが同じでも違っていても 表示されません。。。(汗) 結局このような書き方がいけないのでしょうか? また、この条件分岐に関しても解決方法がありましたら ご教示していただけると大変助かります。 何卒、よろしくお願いします。 | ||||||||||||
|
投稿日時: 2004-12-22 11:53
デバッグ出力をしてみたら、if の直前に
nodeA:<xsl:value-of select="nodeA"/># nodeB:<xsl:value-of select="nodeB"/># 空白類に注意 XMLエディタを使っているならXSLTのソースデバッグできるのも、あります [ メッセージ編集済み 編集者: MMX 編集日時 2004-12-22 11:56 ] | ||||||||||||
|
投稿日時: 2004-12-23 12:09
書き方が変じゃないですか?
そのXSLの書き方を見て、非常に違和感を覚えました。 XMLについて階層の考え方というか、 nodeAとnodeBの関連を比較出来てないと思います。 具体的にどういうXMLのTree構造をとっているか 僕の書き方に倣って書いてみていただけません?
| ||||||||||||
|
投稿日時: 2004-12-23 17:37
度々すみません。
NodeA,NodeBと書いたのは略のためです。 実際は、 NodeAはAAA/BBB/CCC/DDD NodeBはAAA/BBB/CCC/EEE のようになっていますので ルパンさんのtreeですと、 1.兄弟間の関係 になります。 |
1