我正在尝试使用以下代码从 Umbraco (v4.0.2.1) 中的特定标签组中获取标签列表:
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);
...它只是错误。