大家好!
我有以下用例:
我的Winform-App正在验证针对XSD的普通XML,并在列表框中显示错误(如果有的话)(这样可以正常工作)。除此之外,我将经过验证的XML加载到树视图中。
现在,我想要实现的是让用户能够双击列表框中的错误,然后树视图选择导致错误的相关元素。
我实际上有点困惑。我现在是错误的行号,但是我无法使用行号在树视图中选择相关节点。
有人知道如何实现这个目标吗?
非常感谢任何暗示:)
亲切的问候
更新:
填写树视图的代码:
doc.Load(XMLDocPath);
XmlNodeTree root = new XmlNodeTree(0, doc.LastChild);
treeDGUXml.Nodes.Add(root);
FillTreeView(root.Nodes, doc.LastChild.ChildNodes);
方法:
private void FillTreeView(TreeNodeCollection c, XmlNodeList l)
{
if (l == null)
{
return;
}
foreach (XmlNode e in l)
{
XmlNodeTree n = new XmlNodeTree(nRow, e);
c.Add(n);
FillTreeView(n.Nodes, e.ChildNodes);
}
和班级:
public class XmlNodeTree : TreeNode
{
private XmlNode mNode;
public XmlNode Node
{
get { return mNode; }
}
public XmlNodeTree(int rownumber, XmlNode node)
{
mNode = node;
if (node.NodeType == XmlNodeType.Text)
{
Text = node.InnerText;
}
else
{
Text = rownumber.ToString() + " - " + node.Name;
nRow++;
}
if (node.Attributes != null)
{
foreach (XmlAttribute a in node.Attributes)
{
Text += " " + a.OuterXml;
}
}
}
}
答案 0 :(得分:0)
非常感谢您的提示。我决定采用另一种没有树视图的方法。我将XML加载到具有适当颜色的richtext框中。这样我就可以选择相关的文字了。用户无法折叠xml结构,但现在这比没有好;)无论如何,谢谢您的建议! -