2014-01-16 28 views
1

如果此问题已在别处得到解答(我已经搜索过!),首先抱歉,但是我第一次在Umbraco中使用xPathNodeIterator卡住了。使用XPathNodeIterator获取节点的值

基本上我创建了一个xPath复选框列表,并试图获取所选内容的值。我已经得到了(这是第一次,我用这个,所以大多数的这个我已经复制鹦鹉时尚)

XPathNodeIterator n = umbraco.library.GetXmlNodeById(myNode.Id.ToString()); 
while (n.MoveNext()) 
{ 
    litSpeakers.Text += n.Current.InnerXml; 
} 

这将返回我的一切,是在节点的内容,但我试图获取XPath Checkboxlist(称为xpather)的值。

这是我第一次使用这个,我很笨!所以如果任何人都能帮上忙,那将是神奇的。

谢谢, 克雷格

回答

0

感谢您的答复你好。

我“解决”它的方式(其中“说话者是XPath的CheckBoxList的名称)

 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/>"; 
     } 
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