2016-10-24 4 views
0

Adob​​e CQ5/Adob​​e ExperienceでSQL2、SQL、XPathまたはQueryBuilderを使用して同じ名前の兄弟(SNS)マネージャー。私たちはAEM 6.Xへのアップグレードのためのインスタンスを準備しようとしています。すでに知られているように、jackrabbitオークはSNSのサポートを無効にしています。リポジトリは再帰的にトラバースされる可能性がありますが、これは遅すぎるので、クエリを使用してより良いオプションを探しています。 SNSは次のように定義されています:CQ5/AEMでSQL2、SQL、XPathまたはQueryBuilderクエリを使用して同じ名前の兄弟(SNS)を検索

/a/b/c 
/a/b/c[2] 
/a/b/c[3] 

/a/b[2]/c[2] 
/a/b/c[3] 

私はSQL2が好きですが、他のオプションも可能です。 xmlドキュメントについては話していないので、関数やxsltは使用できませんが、Javaコンテンツリポジトリ(JCR)には使用できないことに注意してください。

コンテキストノードの同じ名前の兄弟があなたの場合(「以外は。」を省略することができ

let $n := node-name(.) 
return (preceding-sibling::* | following-sibling::*)[node-name(.) = $n] 

または

let $n := node-name(.) 
return ../*[node-name(.) = $n] except . 

などとして求めることができるのXQuery 1.0またはXPathの3.0では

+0

が要件についてより正確にしてください行うことができます。たとえば、特定の要素の同じ名前の兄弟を探しているのですか、ドキュメント全体の同じ名前の兄弟のすべてのセットを探していますか? –

+0

ご意見ありがとうございます。私はCQ5/AEMについて話しています。これらのタグは質問にも設定されています。これはそこでの既知の問題なので、システムを使って作業する人にとっては十分に明確である必要があるので、私はより精密にする必要は見られませんでした。あなたは明らかに要件が何であるかを理解していないので、私はここにあなたのコメントとokを改善する要求を見つけるが、以下のあなたの答えとあなたのdownvoteは適切ではない。とにかくお時間をありがとう! – d33t

答えて

1

結果に元の要素を含める)。

私は純粋なXPath 1.0のソリューションが原因で範囲変数が存在しない場合、可能であるとは思いませんが、XPath 1.0のとXSLT 1.0の中にあなたが

(preceding-sibling::* | following-sibling::*) 
[local-name(.) = local-name(current()) and 
    namespace-uri(.) = namespace-uri(current())] 
関連する問題