次の要素があるとします。
<?xml version="1.0"?>
<!DOCTYPE factory[
<!ELEMENT factorry (worker)+>
<!ELEMENT worker (#PCDATA)>
<!ATTLIST worker id ID #REQUIRED
boss IDREF #IMPLIED>
]>
<factory>
<worker id="i1"> jon </worker>
<worker id="i2" boss="i1"> sean </worker>
<worker id="i3" boss="i2"> jerry </worker>
<worker id="i4" boss="i3"> berry </worker>
</factory>
ここで、上司のすべての上司を取得する XPATH クエリを書きたいので、この例では結果を次のようにしたいと考えています。
<worker id="i1"> jon < /worker>
<worker id="i2" boss="i1"> sean </worker>
ジョンはショーンの上司であり、ショーンはジェリーの上司であり、ショーンについても同じ論理です。
私が書くid(//worker/@boss)
と、ジョン、ショーン、ジェリーが得られることはわかっているので、このグループに同じロジックをもう一度適用したいのですが、その方法がわかりません。