0

次のコードを使用して、Umbraco (v4.0.2.1) の特定のタグ グループからタグのリストを取得しようとしています。

var tags = umbraco.editorControls.tags.library.getAllTagsInGroup("document downloads");

私がやりたいのは、それらのタグのリストを出力することです。ただし、変数「tags」を出力すると、文字列内のすべてのタグのリストが出力されるだけです。各タグを新しい行に分割したい。

「tags」変数のデータ型を確認すると、次のようになります。

string tagType = tags.GetType().ToString();

...出力しますMS.Internal.Xml.XPath.XPathSelectionIterator

質問は、「tags」変数から個々のタグを取得するにはどうすればよいですか? このデータ型の変数を操作するにはどうすればよいですか? 実際の XML ファイルを読み込んでそれを行う方法の例を見つけることができますが、実際の XML ファイルはありません。操作する「tags」変数だけです。

助けてくれてどうもありがとう!

EDIT1 : 私が求めているのは、XPathSelectionIterator データ型によって返されたノードをどのようにループ処理するのですか?

EDIT2:私はこのコードを見つけました。これは私が必要とすることをほとんど行います:

        XPathDocument document = new XPathDocument("file.xml");
        XPathNavigator navigator = document.CreateNavigator();

        XPathNodeIterator nodes = navigator.Select("/tags/tag");
        nodes.MoveNext();
        XPathNavigator nodesNavigator = nodes.Current;

        XPathNodeIterator nodesText = nodesNavigator.SelectDescendants(XPathNodeType.Text, false);

        while (nodesText.MoveNext())
            debugString += nodesText.Current.Value.ToString();

...しかし、実際の XML ファイルの URL が最初の行に読み込まれることを期待しています。私の XML ファイルは本質的に「タグ」変数であり、実際の XML ファイルではありません。だから私が置き換えるとき:

XPathDocument document = new XPathDocument("file.xml");

...と:

XPathDocument document = new XPathDocument(tags);

...それはただのエラーです。

4

2 に答える 2

2

これはイテレータなので、反復することをお勧めします。;-)

var tags = umbraco.editorControls.tags.library.getAllTagsInGroup("document downloads");

foreach (XPathNavigator tag in tags) {
  // handle current tag
}
于 2010-11-29T15:29:23.830 に答える
0

私はこれがトリックを少し良くすると思います。

問題は、getAllTagsInGroup がすべてのタグのコンテナーを返すことです。その子を取得する必要があります。

foreach( var tag in umbraco.editorControls.tags.library.getAllTagsInGroup("category").Current.Select("/tags/tag") )
{
     /// Your Code
}
于 2011-07-05T09:23:01.643 に答える