Конвертировать Umbraco xpath из старой схемы в новую - PullRequest
0 голосов
/ 28 ноября 2011

Я унаследовал некоторый старый код, и мне нужно преобразовать его в последнюю схему в API Umbraco.

private void GenerateDDL()
{
    int currentId = Int32.Parse(umbraco.library.GetXmlNodeCurrent().Current.SelectSingleNode("@id").Value);

    string xpath = string.Format("//node[@id={0}]/descendant::node[@nodeTypeAlias='FormDropdownOption']", currentId);
    XPathNodeIterator xml = umbraco.library.GetXmlNodeByXPath(xpath);

    while (xml.MoveNext())
    {
        //hsEmailList.Add(xml.Current.SelectSingleNode("./data[@alias='Text']").Value.ToString(), xml.Current.SelectSingleNode("./data[@alias='Value']").Value.ToString());
        hsEmailList.Add(xml.Current.SelectSingleNode("Text").Value.ToString(), xml.Current.SelectSingleNode("Value").Value.ToString());
    }
    foreach (DictionaryEntry de in hsEmailList)
    {
        ListItem list = new ListItem();
        list.Text = de.Key.ToString();
        list.Value = de.Value.ToString();
        ddlMemberName.Items.Add(list);
    }
}

Мне нужно перейти от закомментированного кода, в котором он указан ./data[@alias='Text '], к более новой схеме. Есть идеи?

1 Ответ

0 голосов
/ 28 ноября 2011

Изменение:

hsEmailList.Add(xml.Current.SelectSingleNode("./data[@alias='Text']").Value.ToString(), xml.Current.SelectSingleNode("./data[@alias='Value']").Value.ToString());

до:

hsEmailList.Add(xml.Current.SelectSingleNode("./Text").Value.ToString(), xml.Current.SelectSingleNode("./Value").Value.ToString());
...