为什么TreeView node.text在c#中显示奇怪的结构

时间:2014-08-21 09:30:31

标签: c# asp.net treeview tooltip

我有一个树视图

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

在将数据填充到树视图后,我可以很好地显示它。但是现在我想在该树的每个分支中获取文本(从根到父级到最深层次的子级),并进行比较,如果是某个名称,我会将其标记为已选中。

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时,我对它的价值感到非常困惑:

<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>

显示时,它会以这种格式显示树:

enter image description here

为什么文本具有该格式?如何在图像中精确提取每个分支名称?如上所述,转动所选功能是否正确?

1 个答案:

答案 0 :(得分:1)

我找到了答案。在代码的其他部分,它们通过

附加树的节点文本
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;

感谢您的关注!希望这会帮助某些人有相关的东西。