我打算将 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 to XML
我认为您不能“合法地”只加载 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 文件,但其余部分应该可以正常工作。就您不理解的部分提出问题。