0

選択した「Xpathの場所」にあるすべての要素を取得して、comboBox/ドロップダウンリストに追加しようとしています。

Xpathクエリを使用してこれらすべての要素を選択しようとしました:/@*XpathNodeIteratorのSelectメソッドを使用します。

問題は、先に進まないイテレータを返すことです。実際、子がなく、イテレータをxmlElementまたはノードに変換できないため、少なくともそれらの内部を検索できます。

これはコードです:

 while (anIterator.MoveNext())
            {
                //im trying to select  all nodes  of selected path which and return them to an iterator
                secondIterator = anIterator.Current.Select("/@*");                    

                while (secondIterator.MoveNext())
                {
                    aNode = new Nodes();
                    aNode.Name = anIterator.Current.MoveToFirstChild().ToString();
                    nodeList.Add(aNode);
                }
                nodeList.Add(aNode);
            }

現在のノードのすべての要素を取得するための解決策はありますか?

4

2 に答える 2

0

これは、作業している XML ファイルがなければ、また、何を見たいのか、何を現在見ているのかを私たちに伝えなければ、答えるのは間違いなく困難です。

ここにいくつかの観察があります:

XPath の「@」文字は、現在のノードのすべての属性を取得しようとしていることを示しています。「/」は、Path に DOM のルートから開始するように指示します。

現在のノードの下にあるすべての要素を取得しようとしている場合は、「./*」に変更することをお勧めします。

于 2012-12-20T23:32:20.177 に答える
0

問題は、子要素ではなく子属性@を選択することを示す です。( http://www.w3.org/TR/xpath/#path-abbrevを参照)。

anIterator.Current.Select("*")子要素を取得してみてください。すべての子孫要素 (直接の子だけでなく) が必要な場合は、試してください。anIterator.Current.Select(".//*")

于 2012-12-20T23:32:32.997 に答える