2017-06-05 5 views
0

私はいつも、preceding軸には、コンテキストノードの祖先を除いて、文脈ノードの前にあるすべてのノードが文書順に含まれ、属性ノードと名前空間ノードも除外されていると常に考えていました。::とそれに続く:: XPathの軸はどうですか?

最近、私はXMLの2冊の出版された本に出くわしました。 XPathprecedingfollowing軸の章では、これらの著者は、私がこれらの2軸の定義から除外すべきであると考えられるノードは述べていませんでした。彼らは単純にコンテキストノードの前後のすべてのノードとして定義しました。

自然に混乱します。私は通常、出版された本、特に私が2つの別冊で見つけたものを疑うことはない(敢えて)。

XMLは進化し続ける技術です。私が逃した公式または推奨の定義に変更がありましたか?

ご協力いただきありがとうございます。

答えて

1

これはあなたが信じていることではなく、スペックが何を言っているのかという問題です。

次軸のコンテキストツリーのルート の子孫であるすべてのノードが含まれています。次のようにするXPathの(3.1)最新バージョンは

https://www.w3.org/TR/xpath-31/#axes

にこれらの軸を規定しますノードが見つけられ、コンテキストノードである の子孫ではなく、文脈ノードの後ろに文書順に存在する

先行軸には、ルートの子孫であるすべてのノードが含まれます文書順でコンテキストノードが発見された木の、 コンテキストノードの祖先ではなく、文脈ノードの前に起こる

定義は経時的に変化していません。

悲しいことに、本が単純化するのは珍しいことではありません。一方、あなたが読んでいる本の中に何かを見逃しているかもしれません、あなたはそれらを具体的に引用していないので、わかりません。

+0

ありがとうございました。私は公式仕様書を読む習慣に慣れていませんでした。あなたが引用したものは、実際にはかなり明確です。本については、私は実際にそれらを所有していませんでした。だから私はもっと情報を与えることはできません。彼らは私が実際に見たチャート/テーブルでした。私が全書籍を読んでいないことを考えれば、私は何かを見逃したかもしれない。しかし、スペックとその本の中で言われたこととの間にこのような大きな違いがあることを考えると、私はまだそれらを間違いと呼んでいます。とにかくテーブルに組み込まれていたはずのどこかに言及したとしても。 –

関連する問題