我计划将XML用于数据库目的.我唯一能做的就是读取整个XML文件.我只想能够读取一些数据,但我不知道如何做到这一点.

下面是一个简单的XML

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

我对将要输出的APP感兴趣

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.

EDIT:

好的,为了让这个示例更好,请try 一下这个(使用@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文件,但是睡觉应该可以工作.问一些你不理解的部分.

Database相关问答推荐

如何使授权服务器与外部数据库保持同步?

撤销语句释放类实例中可用的缓冲区

如何在没有sqlmock的情况下模拟db ping

从仅连接器电源查询制作图表

在 SQL Server 中以编程方式创建数据库

如何在 sql server 2005 中获取到数据库的详细连接列表?

将整数作为字符串存储在数据库中的缺点

如果限制在本地机器上,最好使用 R 和 SQL

错误:mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication

Postgresql 从多个表中删除多行

保存图像:文件还是 blob?

如何在 DB2 的单个更新语句中更新多个列

为什么在 Hibernate 中不推荐hibernate.connection.autocommit = true?

此平台不支持 LocalDB

日期范围重叠判断约束

MySQL是否允许使用点创建数据库?

如何在 liquibase 中标记变更集以进行回滚

如何在实体框架中使用字符串属性作为主键

Web 应用程序的文件存储:文件系统、数据库和 NoSQL 引擎

python3k中的sqlite3中的cursor.rowcount总是-1