Почему TreeView node.text показывает странную структуру в c #

1

У меня есть дерево

Microsoft.Web.UI.WebControls.TreeView myTreeView = new Microsoft.Web.UI.WebControls.TreeView();
        myTreeView.Nodes.Clear();

И после заполнения данных в treeview я могу показать это красиво. Однако теперь я хочу получить текст в каждой ветки этого дерева (от корня до родителей до ребенка на самом глубоком уровне) и сравнить, если это определенное имя, я помечаю его как выбранный.

Microsoft.Web.UI.WebControls.TreeNodeCollection nodes = myTreeView.Nodes;
        foreach (Microsoft.Web.UI.WebControls.TreeNode n in nodes)
        {
            string nodetext = n.Text;
            if (nodetext == "Casting")
                myTreeView.SelectedNodeIndex = n.GetNodeIndex();
        }

Однако, когда я печатаю nodetext, я очень nodetext со своим значением:

<acronym Title='Casting, Closed Die Press Forging, Compression Moulding, Drop Forging, Injection Moulding, Moulding Compounds, Steel Atomisation, Transfer Moulding, Two Shot Moulding, Upset Forging, Vacuum Forming'>Casting, Moulding, Forming, & Forging</acronym>

На дисплее отображается дерево в этом формате:

Изображение 174551

Почему текст имеет такой формат и как я могу извлечь точно имя каждой ветки, как на изображении? И правильно ли выставлять выбранную функцию, как я делаю выше?

  • 0
    Вы работаете над приложением Windows или веб-приложением?
  • 0
    Это веб-приложение. Я не знаю, почему node.text включает тег <acronym> вокруг текста. Я просто хочу получить текст между этим тегом.
Теги:
treeview
tooltip

1 ответ

1

Я нашел ответ. В другой части кода они добавляют nodetext для дерева посредством

return String.Format("<acronym Title='{0}'>{1}</acronym>",

поэтому он имеет такой формат. Чтобы получить текст, мне просто нужно использовать регулярное выражение:

//get text inside tag
            string regularExpressionPattern1 = @"<acronym .*?>(.*?)<\/acronym>";
            Regex regex = new Regex(regularExpressionPattern1, RegexOptions.Singleline);
            MatchCollection collection = regex.Matches(n.Text.ToString());
            Match m = collection[0];
            var stripped = m.Groups[1].Value;

Спасибо за внимание! Надежда, которая поможет кому-то, что-то связанное.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню