首先道歉,如果这个问题已在其他地方得到解答(我已经搜索过了!)但是我第一次在Umbraco中使用了xPathNodeIterator。
基本上我已经创建了一个xPath Checkboxlist,我正在尝试获取所选内容的值。我得到了什么(这是我第一次使用它,所以大部分时间我都复制了鹦鹉时尚)
XPathNodeIterator n = umbraco.library.GetXmlNodeById(myNode.Id.ToString());
while (n.MoveNext())
{
litSpeakers.Text += n.Current.InnerXml;
}
这会返回节点内容中的所有内容,但我只想获取XPath Checkboxlist(称为xpather)的值。
这是我第一次使用这个而且我一无所知!!所以,如果有人能提供帮助那将是神奇的。
谢谢, 克雷格
答案 0 :(得分:0)
我没有对此进行过测试,但是它应该给你一个指针,复选框可以使用不同的'truthy'值,但我假设你选中的值有“已检查”而不是其他东西:
List<string> checkedNodes = new List<string>();
XPathNodeIterator n = umbraco.library.GetXmlNodeById(myNode.Id.ToString());
while (n.MoveNext())
{
if (n.Current.GetAttribute("id","") == "xpather" && n.Current.GetAttribute("checked","") == "checked")
{
checkedNodes.Add("<something to identify whats been checked>");
}
}
umbraco示例:http://our.umbraco.org/wiki/reference/umbracolibrary/getprevalues
答案 1 :(得分:0)
非常感谢您的回复。
我'解决'的方式是(其中'speaker'是xpath复选框列表的名称)
string dataValue = myNode.GetProperty("speakers").Value.ToString();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(dataValue);
foreach (XmlNode itemnode in xmlDoc.DocumentElement)
{
litNode.Text += itemnode.InnerText;
Node myUmbracoNode = new Node(Int32.Parse(itemnode.InnerText));
litNode.Text += myUmbracoNode.Name + "<br/>";
}