解析XML的不同方法

dst*_*str 3 .net xml parsing

在XML方面,我是初学者.我创建了一个简单的XML文件,并尝试解析它并将值分配给变量.它运作但我使用的方法让我想知道是否有更好的方法,如果你愿意,更优雅,为此任务.有吗?

这是我的XML文件:

<start>
<record>
<var1>hello</var1>
<var2>world</var2>
</record>
<record>
<var1>another</var1>
<var2>one</var2>
</record>
</start>
Run Code Online (Sandbox Code Playgroud)

这是我使用的方法:

string var1 = "", var2 = "";

using(XmlReader r = XmlReader.Create(file))
{
    while(r.Read())
    {
        if (r.MoveToContent() == XmlNodeType.Element)
        {
            if(r.Name == "record")
            {
                var1 = "";
                var2 = "";
            }
            else if(r.Name = "var1")
                var1 = r.ReadElementString();
            else if(r.Name = "var2")
                var2 = r.ReadElementString();
        }
        else if(r.MoveToContent() == XmlNodeType.EndElement && r.Name == "record")
        {
            Console.WriteLine(var1 + " " + var2);
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

ora*_*dov 6

你尝试过Linq To XM L吗?

我是新手,所以这段代码可能会做得更好,但我认为这有效:

XElement xmlData = XElement.Load("XmlFile.xml");
        string var1, var2;
        foreach (XElement element in xmlData.Elements("record"))
        {
            var1 = element.Element("var1").Value;
            var2 = element.Element("var2").Value;

            Console.WriteLine(var1 + " " + var2);

        }
Run Code Online (Sandbox Code Playgroud)


Wya*_*ett 6

真正的男人不解析,他们反序列化.