.net - 解析 XML 的不同方法

标签 .net xml parsing

我是 XML 的初学者。我创建了一个简单的 XML 文件并尝试对其进行解析并将值分配给变量。它有效,但我使用的方法让我想知道是否有更好的方法,如果你愿意的话,更优雅的方法来完成这项任务。有吗?

这是我的 XML 文件:

<start>
<record>
<var1>hello</var1>
<var2>world</var2>
</record>
<record>
<var1>another</var1>
<var2>one</var2>
</record>
</start>

这是我使用的方法:

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);
        }
    }

}

最佳答案

你试过了吗Linq To XM大号?

我对它很陌生,所以这段代码可能会做得更好,但我认为这是可行的:

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);

        }

关于.net - 解析 XML 的不同方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/967435/

相关文章:

sql-server - 在 T-SQL 中连接来自 XML 的数据

ruby /纤薄 : parse Markdown from a YAML file

Java 十进制格式 - 与给定的一样多的精度

c# - 同一解决方案中的不同 EntityFramework 版本

.net - 为什么 Math.DivRem 如此低效?

c# - 为什么编译器在不进一步继承的情况下自动转换?

c# - 为 WCF 应用程序设置凭据?

c# - 在 C# 中,有没有一种方法可以使用短前缀而不是每个节点的完整命名空间来生成 XDocument?

xml - 将两个数组中的 XML 数据相加

linux - vim:删除命令行中不匹配的行