一尘不染

从XML读取数据

c#

我打算将XML用于数据库目的。我唯一能做的就是读取整个XML文件。我只想读取一些数据,但我不知道该怎么做。

这是一个简单的XML

<Books>
 <Book>
  <Title>Animals</Title>
  <Author>J. Anderson</Author>
 </Book>
 <Book>
  <Title>Car</Title>
  <Author>L. Sawer</Author>
 </Book>
</Books>

我对将要输出的应用程序感兴趣

Books:
Animals
Cars

Authors:
J. Anderson
L. Sawer

我只是想学习如何从XML而不是整个文件读取特定数据。

[已解决]我已使用Linq到XML


阅读 349

收藏
2020-05-19

共1个答案

一尘不染

我认为您不能“合法地”仅加载XML文件的一部分,因为那样的话它将是错误的格式(某处缺少关闭元素)。

使用LINQ-to-XML,您可以执行var doc = XDocument.Load("yourfilepath")。从那里只是查询所需的数据,就像这样说:

var authors = doc.Root.Elements().Select( x => x.Element("Author") );

HTH。

编辑:

好的,只是为了使它成为更好的示例,请尝试以下操作(使用@JWL_的建议改进):

using System;
using System.Xml.Linq;

namespace ConsoleApplication1 {
    class Program {
        static void Main( string[] args )  {
            XDocument doc = XDocument.Load( "XMLFile1.xml" );
            var authors = doc.Descendants( "Author" );
            foreach ( var author in authors ) {
                Console.WriteLine( author.Value );
            }
            Console.ReadLine();
        }
    }
}

您将需要调整路径XDocument.Load()以指向您的XML文件,但是其余的应该起作用。询问有关您不了解的部分的问题。

2020-05-19