我有一个树视图
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>
显示时,它会以这种格式显示树:
为什么文本具有该格式?如何在图像中精确提取每个分支名称?如上所述,转动所选功能是否正确?
答案 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;
感谢您的关注!希望这会帮助某些人有相关的东西。