2016-05-06 6 views
0

最近AEM 5.6.1からAEM 6.1にアップグレードされ、以下に示す特定のコードが突然機能しなくなりました。簡単に言うと、Node APIを使用して特定のノードの子ノードを取得して処理していますが、AEM 6.1ではgetNodes()メソッドは何も返さず、getNode()だけが動作するようです。他の誰も同じことに直面していて、それに対する解決策がありますか?AEMで複数のノードが取得される6.1

if (jobAdNode.hasNode(PARSYS_NODE_REL_PATH)) { 
      Node parsysNode = jobAdNode.getNode(PARSYS_NODE_REL_PATH); 
      NodeIterator textNodeItr = parsysNode.getNodes("text"); // RETURNS NOTHING 
      Node textNode1 = parsysNode.getNode("text"); // RETURN THE EXISTING TEXT NODE 
      if (textNodeItr.getSize() > 0) { 
       Node textNode = textNodeItr.nextNode(); 
       if (textNode.hasProperty(TEXT_PROP)) { 
        resDescription.append(textNode.getProperty(TEXT_PROP).getString()); 
       } 
      } 
     } 

答えて

2

さて、ヒットと試験の多くの後、私は問題の場所に位置しており、ここに投稿したいと思います、場合に他の誰が同じに直面しているそう。私は上記の投稿コードでは、犯人は、この行である:

if (textNodeItr.getSize() > 0) 

parsysNode.getNodes(「テキスト」)、この方法は、しかしのgetSizeメソッドがまだ返し、子ノードを有するノードのイテレータを返す-1ノードが返されていないように見えます。 getSize()メソッドhereのドキュメントを見てください!これは、getSizeメソッドがすべての実装でサイズを返さないことがあることを示しています。

私は主に使用されているhasNext()を使用して問題を解決しました。

関連する問題