我用下面的代码试图在一把umbraco(v4.0.2.1)从一个特定的标签组得到的标签列表:遍历一把umbraco getAllTagsInGroup结果
var tags = umbraco.editorControls.tags.library.getAllTagsInGroup("document downloads");
我想要做的是什么只需输出这些标签的列表。但是,如果我输出变量“标签”,它只会输出一个字符串中所有标签的列表。我想将每个标签分成一个新行。
当我检查了 '标签' 变量的数据类型:
string tagType = tags.GetType().ToString();
...它输出MS.Internal.Xml.XPath.XPathSelectionIterator
。
所以问题是,我如何从'标签'变量中获取单个标签?我如何使用这种数据类型的变量?我可以通过加载一个实际的XML文件找到如何实现它的例子,但我没有一个真正的XML文件 - 只是要使用的'标签'变量。
非常感谢您的帮助!
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);
...它只是错误。
Thanks Tomalak。我试过以下内容: \t \t \t var tags = umbraco.editorControls.tags.library.getAllTagsInGroup(“document downloads”); \t \t \t的foreach(在标签的XPathNavigator标签) \t \t \t { \t \t \t \t debugString + = tag.ToString()+ “
”; \t \t \t} ,但它只是输出的所有标签为一个字符串 - 它似乎并没有通过每一个迭代,因为它应该。 – Dan 2010-11-29 15:41:31