c# - 从 XML 中读取数据

标签 c# xml database

<分区>

我打算将 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 文件,但其余部分应该可以正常工作。就您不理解的部分提出问题。

关于c# - 从 XML 中读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7119806/

相关文章:

c# - WPF 组合框作为 System.Windows.Media.Colors

java - 当“在 XML 中使用时 SAXParseException

mysql - 在 AWS RDS MySQL 实例 r4 和 m5 之间进行选择

数据库的 SQL 查询查找学生的 nr

c# - 如何从 ASP.Net Core 配置文件中合并多个数组?

c# - C# 中的整数范围列表

c# - 在 Entity Framework 7 中显式映射接口(interface)成员

xml - 使用 Cdata 中的 XSLT 1.0 删除 xml 声明(<?xml 版本 ="1.0"编码 ="UTF-8"?>)

java - 无法使用 ModelDriven 拦截器执行 Struts 2 程序

database - 在数据库中使用继承来减少以后更改模式的痛苦是不好的做法吗?