1

私は次のようなxmlを持っています

<Screen>
    <window name="gui">
        <widget name="status" pos="0:0">
            <timedate name="timedate"/>
            <message name="message"/>
        </widget>
    </window>
</Screen>

この xml の良い点の 1 つは、すべてのノードに固有の名前があることです。xml のどこにも繰り返されません。

ノードを見つけるには、xpath を使用してクエリを実行し、その存在/非存在の結果を取得しますが、通過したパスを見つける必要があります。

例 xpath クエリ '//timedate' を使用して timedate ノードを検索できますが、これに加えて、通過するパス、つまり Screen/window/widget/timedate も必要です。

パスを取得する方法もいくつか提案してください。

あなたの助けは非常に高く評価されます。

4

3 に答える 3

1

完全な解決策については、 https : //stackoverflow.com/a/4747858/36305の回答を参照してください。

ソリューションは XSLT ですが、必要に応じてコードを他のプログラミング言語に変換できます。

于 2013-01-03T14:24:38.673 に答える
0

CPAN には、それ自体がHTML::Untemplateパッケージの一部であるxpathifyというツールがあります。

スクリーンショット

于 2013-01-03T18:47:01.710 に答える