2

ここに画像の説明を入力 XPath のさまざまな軸を示すインフォ グラフィックを作成しました。ただし、それらが正しいかどうかはわかりません。

followingfollowing-sibling、 でpreceding混乱するpreceding-sibling

私の図は正しいですか?

元の画像はこちら: http://imgur.com/4ekJxca (Pro XML Development with Java から取得)

混乱するノードについての私の理解は次のとおり
descendant::です。コンテキストノードの子と孫であるノード(要素とテキストのみ)を選択します。

following::子孫によって選択されなかった任意のノード (テキストのみ) を選択します。

following-sibling::コンテキスト ノードのすべての「兄弟」。つまり、コンテキスト ノードの後の、コンテキスト ノードと同じ親の子であるテキスト ノードと要素ノードです。

preceding::siblingコンテキスト ノードのすべての「兄弟」。つまり、コンテキスト ノードの前に、コンテキスト ノードと同じ親の子であるテキストおよび要素ノードです。

preceeding::ancestor::軸に沿って表示されず、どの要素ノードにもネストされていないすべてのノード (テキストのみ) 。(私はこれを台無しにしたと確信しています)

XML

<?xml version="1.0" encoding="UTF-8"?>
    <catalog xmlns:journal="http://www.apress.com/catalog/journal" >
        <journal:journal title="XML" publisher="IBM developerWorks">
            <article journal:level="Intermediate"
            date="February-2003">
                <title>Design XML Schemas Using UML</title>
                <author>Ayesha Malik</author>
            </article>
        </journal:journal>
        <journal title="Java Technology" publisher="IBM developerWorks">
            <article level="Advanced" date="January-2004">
            <title>Design service-oriented architecture
            frameworks with J2EE technology</title>
            <author>Naveen Balani</author>
        </article>
        <article level="Advanced" date="October-2003">
            <title>Advance DAO Programming</title>
            <author>Sean Sullivan </author>
        </article>
    </journal>
</catalog>
4

1 に答える 1

2

preceding軸と軸について正確な直感を得る最良の方法followingは、XML を入れ子になったボックスまたは間隔のセットとして想像することです。ここで、各間隔は開始タグから一致する終了タグまで伸びます。この図では、任意の 2 つの異なる間隔abが、次の関係のいずれかにある必要があることがわかります。

  1. aにはb ( a/descendant::b)が含まれます。
  2. aはb ( a/ancestor::b)に含まれています。
  3. a の後にb ( a/following::b) が続きます。
  4. a の前にb ( a/preceding::b) があります。

このモデルに従えば、XPath 軸のセマンティクスに疑問を持つことはありません。

ちなみに、これがツリー モデルが直感に合わない理由です。「入れ子になったボックス」パラダイムを前面に出さないため、混乱しやすいのです。

于 2013-05-13T10:59:31.817 に答える