2

XML で xslt を実行しています。これにより、ある時点で現在のノードがツリー内の次の「item」要素に配置されます。

host/device/item

次の xpath が xslt を XML ツリーの "host" ブランチに戻し、"host" 要素の "trigger" 孫要素を見つけることに成功したことを実験で確認しました。

../.././setting/trigger

動作しますが、xpath 構文は私には奇妙に思えます。ドット親表記は、右から左に../../.読むと意味があります。.ただし、子句の表記setting/triggerは、左から右に読んだ場合にのみ意味があります。xpath 全体の「最終的な意味」は、次のように言うのと同じです。

host/setting/trigger

../.最終的な意味を作成するために、xpathの中間セクション (または親../レベルの数) が常に無視されるというのは常に本当host/device/triggerですか?

4

1 に答える 1

4

は自分自身を意味するので.、無視されていると解釈できます。 ./././././././*は と同じ./*意味で、これは と同じ意味*です。

XPath の読み取りについて、コンテキスト ノードから分解するhost/device/item

では../.././setting/trigger/文字によってノード テストが区切られているため、LtoR は次のようになります。

..あなたは今ホスト/デバイスにいます、

..あなたは今ホストにいます

.あなたはまだホストです

settingあなたは今ホスト/設定にいます

triggerあなたは今ホスト/設定/トリガーにいます

それを RtoL で読む場合、ノード テストに従うのではなく、反対の意味で各ノード テストを読んでいることを理解する必要があります。

from host/setting/trigger(目的のエンドポイント)

trigger( と読みます..)、あなたは今host/setting

setting(再び、..)、あなたは今ホストにいます

.( .)、あなたはまだホストにいます

..( として読む*) あなたは今ホスト/デバイスにいるかもしれません

..( として読む*) あなたは今、ホスト/デバイス/アイテムにいるかもしれません

于 2011-03-20T19:19:17.033 に答える