Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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#解析Xml(WebTut)_C#_.net_Xml_Linq - Fatal编程技术网

用C#解析Xml(WebTut)

用C#解析Xml(WebTut),c#,.net,xml,linq,C#,.net,Xml,Linq,在C#中解析Xml时遇到问题。我正在尝试运行从该网站找到的一些代码: 代码是: namespace ParseXML { public partial class Form1 : Form { static void Main(string[] args) { try { TextReader reader = new StreamReader("notes.xml"

在C#中解析Xml时遇到问题。我正在尝试运行从该网站找到的一些代码:

代码是:

namespace ParseXML
{
    public partial class Form1 : Form
    {
        static void Main(string[] args)
        {
            try
            {
                TextReader reader = new StreamReader("notes.xml");
                XmlSerializer serializer = new XmlSerializer(typeof(note));
                note n = (note)serializer.Deserialize(reader);

                System.Console.WriteLine(n.to);
                System.Console.WriteLine(n.from);
                System.Console.WriteLine(n.heading);
                System.Console.WriteLine(n.body);
                reader.Close();
            }
            catch (Exception e)
            {
                System.Console.WriteLine(e.Message);
            }

        }        
    }
}

您将看到“note”被传递到Xmlserializer(Xmlserializer(typeof(note))——这个note表示note没有类型。下面的一行包含另外两个Notes实例,都有红色下划线,表示我错过了一个集合引用。没有要注意的名称空间。这家伙似乎是为了跟人上床才加上这个的。这简直让人发疯不,那家伙没有惹你。Note是从notes.xsd文件自动生成的类

这个过程是:

  • 在XSD中定义您的数据结构
  • 使用Microsoft的XSD.EXE从XSD生成.CS文件
  • 将生成的CS文件包含到解决方案中
  • 然后该类型将变为可用

    对于那些建议他不要解析XML的人,您认为这行代码在做什么:

    note n = (note)serializer.Deserialize(reader);
    

    煎一些熏肉和鸡蛋?

    哦,不,请!你应该从阅读教程开始,特别是C#教程。如果您不知道诸如OOP中的对象和显式强制转换之类的概念,您将无法理解这里的任何答案。您的代码甚至没有解析XML。请从了解您正在做的事情开始,不要只做复制/粘贴/询问。@John Saunders-这段代码解析XML太难了。它正在使用XmlSerializer来解析它。“这是一种非常常见的技巧。看到人们问这样的问题,真让人恼火。”阿桑同意。但更让人恼火的是,看到那些声名显赫的人在不知道自己在说什么的情况下进行指责。“您的代码甚至没有解析XML”-pfft。拿起一本C#教科书。这一行是反序列化XML,通过调用
    XmlReader
    实例来解析它。所以,它只是间接地解析它,对吗?否则,我可能会认为XmlReader不解析XML,因为它是XmlReader内部的IL进行解析。也许别再试图说服别人,试着帮助别人?