Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在文本框中的treeview中显示XML架构数据_C#_Xml_Visual Studio 2010_Xsd - Fatal编程技术网

C# 在文本框中的treeview中显示XML架构数据

C# 在文本框中的treeview中显示XML架构数据,c#,xml,visual-studio-2010,xsd,C#,Xml,Visual Studio 2010,Xsd,我是这个项目的新手。它在C#的visual studio 2010上。我试图在一个带有树视图的文本框中显示这个XML模式。我很难把它变成树景 使用系统; 使用System.Windows.Forms; 使用System.Xml; 公共类XmlTreeDisplay:System.Windows.Forms.Form{ private System.Windows.Forms.TreeView treeXml=new TreeView(); 公共XmlTreeDisplay(){ treeXml.

我是这个项目的新手。它在C#的visual studio 2010上。我试图在一个带有树视图的文本框中显示这个XML模式。我很难把它变成树景

使用系统;
使用System.Windows.Forms;
使用System.Xml;
公共类XmlTreeDisplay:System.Windows.Forms.Form{
private System.Windows.Forms.TreeView treeXml=new TreeView();
公共XmlTreeDisplay(){
treeXml.Nodes.Clear();
this.Controls.Add(treeXml);
//加载XML文档
XmlDocument doc=新的XmlDocument();
字符串文件路径=@“C:\Documents and Settings\Administrator\Desktop\M.xsd”;
试一试{
文档加载(文件路径);
}捕获(异常错误){
MessageBox.Show(错误消息);
返回;
}
ConvertXmlNodeToTreeNode(doc,treeXml.Nodes);
treeXml.Nodes[0].ExpandAll();
}
私有void ConvertXmlNodeToTreeNode(XmlNode XmlNode,
三烯醇(三烯醇){
TreeNode newTreeNode=treeNodes.Add(xmlNode.Name);
开关(xmlNode.NodeType){
案例XmlNodeType.ProcessingInstruction:
案例XmlNodeType.XmlDeclaration:
newTreeNode.Text=“”;
打破
case XmlNodeType.Element:
newTreeNode.Text=“”;
打破
case XmlNodeType.Attribute:
newTreeNode.Text=“属性:”+xmlNode.Name;
打破
案例XmlNodeType.Text:
案例XmlNodeType.CDATA:
newTreeNode.Text=xmlNode.Value;
打破
案例XmlNodeType.Comment:
newTreeNode.Text=“”;
打破
}
if(xmlNode.Attributes!=null){
foreach(xmlNode.Attributes中的xmldattribute属性){
ConvertXmlNodeToTreeNode(属性,newTreeNode.Nodes);
}
}
foreach(XmlNode.ChildNodes中的XmlNode-childNode){
ConvertXmlNodeToTreeNode(childNode,newreeNode.Nodes);
}
}
公共静态void Main(){
Run(新的XmlTreeDisplay());
}
}
修改此项以满足您的需要

(若要执行相反的操作,请将TreeView转换为XML,无需在此重复)

使用系统;
使用System.Windows.Forms;
使用System.Xml;
公共类XmlTreeDisplay:System.Windows.Forms.Form{
private System.Windows.Forms.TreeView treeXml=new TreeView();
公共XmlTreeDisplay(){
treeXml.Nodes.Clear();
this.Controls.Add(treeXml);
//加载XML文档
XmlDocument doc=新的XmlDocument();
字符串文件路径=@“C:\Documents and Settings\Administrator\Desktop\M.xsd”;
试一试{
文档加载(文件路径);
}捕获(异常错误){
MessageBox.Show(错误消息);
返回;
}
ConvertXmlNodeToTreeNode(doc,treeXml.Nodes);
treeXml.Nodes[0].ExpandAll();
}
私有void ConvertXmlNodeToTreeNode(XmlNode XmlNode,
三烯醇(三烯醇){
TreeNode newTreeNode=treeNodes.Add(xmlNode.Name);
开关(xmlNode.NodeType){
案例XmlNodeType.ProcessingInstruction:
案例XmlNodeType.XmlDeclaration:
newTreeNode.Text=“”;
打破
case XmlNodeType.Element:
newTreeNode.Text=“”;
打破
case XmlNodeType.Attribute:
newTreeNode.Text=“属性:”+xmlNode.Name;
打破
案例XmlNodeType.Text:
案例XmlNodeType.CDATA:
newTreeNode.Text=xmlNode.Value;
打破
案例XmlNodeType.Comment:
newTreeNode.Text=“”;
打破
}
if(xmlNode.Attributes!=null){
foreach(xmlNode.Attributes中的xmldattribute属性){
ConvertXmlNodeToTreeNode(属性,newTreeNode.Nodes);
}
}
foreach(XmlNode.ChildNodes中的XmlNode-childNode){
ConvertXmlNodeToTreeNode(childNode,newreeNode.Nodes);
}
}
公共静态void Main(){
Run(新的XmlTreeDisplay());
}
}
修改此项以满足您的需要


(反过来,将TreeView转换为XML,无需在此重复)

XML模式位于带有TreeView的文本框中,真的吗?请澄清一下。您是否试图在文本框中显示trieview的数据源/数据的XML模式?还是您想获取XML字符串并将其显示为Treeview?
XML模式,放在带有Treeview的文本框中,真的吗?请澄清一下。您是否试图在文本框中显示trieview的数据源/数据的XML模式?还是你想得到XML字符串并将其显示为Treeview?谢谢,它可以很好地工作,但我有自己的UI,它有一个按钮,所以在我点击它之后,我如何使用Treeview制作XML以显示在文本框中???@mcnemesis有没有办法将其转换回?如从Treeview转换为XML?请检查更新的解决方案,ps,如果是,请接受答案:-)谢谢,它可以很好地工作,但我有自己的UI,它有一个按钮,所以在我点击它之后,我如何使用treeview制作xml以显示在文本框上???@mcnemesis有没有办法将其转换回?如从treeview转换为xml?检查更新的解决方案,ps,如果是,请接受答案:-)
            DataSet dsM= new DataSet("M");
            string filePath = @"C:\Documents and Settings\Administrator\Desktop\M.xsd";
            dsM.ReadXml(filePath);
            System.IO.StringWriter swXML = new System.IO.StringWriter();
            dsM.WriteXmlSchema(swXML);
            textBox.Text = swXML.ToString();
using System;
using System.Windows.Forms;
using System.Xml;

public class XmlTreeDisplay : System.Windows.Forms.Form{
    private System.Windows.Forms.TreeView treeXml = new TreeView();

    public XmlTreeDisplay() {
        treeXml.Nodes.Clear();
        this.Controls.Add(treeXml);
        // Load the XML Document
        XmlDocument doc = new XmlDocument();
        string filePath = @"C:\Documents and Settings\Administrator\Desktop\M.xsd";

        try {
            doc.Load(filePath);
        }catch (Exception err) {

            MessageBox.Show(err.Message);
            return;
        }

        ConvertXmlNodeToTreeNode(doc, treeXml.Nodes);
        treeXml.Nodes[0].ExpandAll();
    }

    private void ConvertXmlNodeToTreeNode(XmlNode xmlNode, 
      TreeNodeCollection treeNodes) {

        TreeNode newTreeNode = treeNodes.Add(xmlNode.Name);

        switch (xmlNode.NodeType) {
            case XmlNodeType.ProcessingInstruction:
            case XmlNodeType.XmlDeclaration:
                newTreeNode.Text = "<?" + xmlNode.Name + " " + 
                  xmlNode.Value + "?>";
                break;
            case XmlNodeType.Element:
                newTreeNode.Text = "<" + xmlNode.Name + ">";
                break;
            case XmlNodeType.Attribute:
                newTreeNode.Text = "ATTRIBUTE: " + xmlNode.Name;
                break;
            case XmlNodeType.Text:
            case XmlNodeType.CDATA:
                newTreeNode.Text = xmlNode.Value;
                break;
            case XmlNodeType.Comment:
                newTreeNode.Text = "<!--" + xmlNode.Value + "-->";
                break;
        }

        if (xmlNode.Attributes != null) {
            foreach (XmlAttribute attribute in xmlNode.Attributes) {
                ConvertXmlNodeToTreeNode(attribute, newTreeNode.Nodes);
            }
        }
        foreach (XmlNode childNode in xmlNode.ChildNodes) {
            ConvertXmlNodeToTreeNode(childNode, newTreeNode.Nodes);
        }
    }
    public static void Main(){
       Application.Run(new XmlTreeDisplay());
    }
}