linq to xml 能读xml类型的字符串吗

yongchaochu 2011-07-08 02:45:27
linq to xml 能读xml类型的字符串吗,比如我通过HttpWebRequest得到了一个装有xml的字符串 我能直接load他吗
...全文
153 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
q107770540 2011-07-08
  • 打赏
  • 举报
回复
当然可以
帖个DEMO:


void Main()
{
string str = "<Info><state>待命</state><WId>000028532</WId><BillState>装货中</BillState><Driver>陈靖彩</Driver><items><item><Consignor>利源煤灰</Consignor><Consignee>阿海电站</Consignee>" +
"<LoadLocation>利源煤灰</LoadLocation><UnloadLocation>水电七局</UnloadLocation><GoodName>煤灰</GoodName><GoodsBreed>II 级灰</GoodsBreed><GoodPack>散装</GoodPack><Send>0.0000</Send>" +
"<Recive>0.0000</Recive></item></items><items><item><Consignor>利源煤灰1</Consignor><Consignee>阿海电站1</Consignee><LoadLocation>利源煤灰1</LoadLocation><UnloadLocation>水电七局1</UnloadLocation>" +
"<GoodName>煤灰1</GoodName><GoodsBreed>II 级灰1</GoodsBreed><GoodPack>散装1</GoodPack><Send>0.0000</Send><Recive>0.0000</Recive></item></items><items><item><Consignor>利源煤灰2</Consignor>" +
"<Consignee>阿海电站2</Consignee><LoadLocation>利源煤灰2</LoadLocation><UnloadLocation>水电七局2</UnloadLocation><GoodName>煤灰2</GoodName><GoodsBreed>II 级灰2</GoodsBreed><GoodPack>散装2</GoodPack>" +
"<Send>0.0000</Send><Recive>0.0000</Recive></item></items></Info>";
var data=XElement.Parse(str);

var query=from x in data.Descendants("items")
select new
{
state=x.Parent.Element("state").Value,
WId =x.Parent.Element("WId").Value,
BillState =x.Parent.Element("BillState").Value,
Driver=x.Parent.Element("Driver").Value,
Consignor=x.Element("item").Element("Consignor").Value,
Consignee =x.Element("item").Element("Consignee").Value,
LoadLocation =x.Element("item").Element("LoadLocation").Value,
UnloadLocation =x.Element("item").Element("UnloadLocation").Value,
GoodName =x.Element("item").Element("GoodName").Value
};
query.ToList().ForEach(q=>Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}\t{8}\t",q.state,q.WId,q.BillState,q.Driver,q.Consignor,q.Consignee,q.LoadLocation,q.UnloadLocation,q.GoodName));
/*
待命 000028532 装货中 陈靖彩 利源煤灰 阿海电站 利源煤灰 水电七局 煤灰
待命 000028532 装货中 陈靖彩 利源煤灰1 阿海电站1 利源煤灰1 水电七局1 煤灰1
待命 000028532 装货中 陈靖彩 利源煤灰2 阿海电站2 利源煤灰2 水电七局2 煤灰2
*/
}

claymore1114 2011-07-08
  • 打赏
  • 举报
回复
转换 一下 就行。XElement.Parse(" ");
vrhero 2011-07-08
  • 打赏
  • 举报
回复
当然能,XML本质就是字符串...那些XmlDocument之类的只不过是容器而已...
LinqSamples 这些示例能够帮助您快速地了解 LINQ。对于具有一定 LINQ 经验的人员来说,它们还可以作为参考和指南。此外,还包括了几种实用工具。它们位于 LinqSamples 文件夹中。 •DynamicQuery: 在运行时创建 LINQ 查询的代码。 •LinqToNorthwind: 关于如何使用 LINQ To SQL 查询数据库的基本示例。 •LinqToXmlDataBinding: 将 LINQ to XML 代码绑定到 WPF 控件。 •ObjectDumper: 用于将 LINQ 查询的输出以文本模式写入屏幕的实用工具。 •PasteXmlAsLinq: 能够自动将 XML 转换为 LINQ to XML 的 Visual Studio 外接程序。 •QueryVisualizer: 使 LINQ to SQL 开发人员能够看到其查询的 SQL 代码,并能在网格中查看查询的结果。 •Reflector: 使用 LINQ 对使用反射 API 的代码中的对象进行正确的查询。 •RSS: 此示例可作为聚合若干 RSS 源的小型 Web 服务器。 •SampleQueries: 这是最重要的示例,其中包含了 500 多个关于如何在 LINQ to Objects、LINQ to SQL、LINQ to XMLLINQ to DataSet 中使用各个查询运算符的例子。 •SimpleLambdas: 几个关于如何编写和使用 lambda 表达式的示例。 •SimpleLinqToObjects: 简单的 LINQ 示例。为您显示使用 LINQ to Objects 创建内存对象的简单查询是多么简单。 •SimpleLinqToXml: 开始使用 LINQ to XML。 •WebServiceLinqProvider(TerraService): 用于 TerraServer-USA Web 服务的自定义 LINQ 提供程序和客户端。 •Whitepapers: 以下白皮书以 Word 格式存储在此目录中: ◦LINQ 项目概述 ◦LINQ to SQL 概述(适用于 C# 和 VB) ◦标准查询运算符 ◦LINQ to XML 概述 •WinFormsDataBinding: 学习如何在 Windows 窗体中使用网格显示 LINQ 查询。它包括一个一对多查询示例。 •XQuery: 另一个简单的 LINQ to XML 示例查询。此示例显示编写 LINQ to XML 查询所需的最少代码。 LINQ 示例数据库连接问题 如果开发计算机上安装有 SQL Server Express,则这些示例应无需修改即可正常发挥作用。下面是一个 备用连接字符串,如果不使用 SQL Express,但有 SQL Server 可供使用,则可对该字符串进行修改,以用于自己的用途。只要 test 一词显示在示例连接字符串中,您就可能需要修改该单词。 string connString = "server=test;database=northwind;user id=test;password=test"; 对于某些 SQL Express 安装,您可能无权启动用户实例。如果在此情况下收到错误消息,请尝试从连接字符串中删除子句 “;user instance = true”。 确保要访问的 northwind 数据库的副本未标记为只读。如有必要,请浏览到尝试访问的 NORTHWIND.MDF 的副本,右击该文件,然后选择“属性”。清除 只读特性。 用户已报告,在某些运行速度较慢的计算机上,或在使用虚拟 PC 时,某些数据库应用程序在首次运行时出错。请尝试运行该示例两次或三次。 未将 LDF (日志)文件随示例中包含的 Northwind 数据库自定义副本一起提供。特意这样做的目的是为了使 LDF 与 MDF 文件不会失去同步。运行使用该数据库的示例时,或从 Visual Studio 中的服务器资源管理器连接到该数据库时,将会自动创建 LDF 文件。如果在未先创建日志文件的情况下使用 SQL Server Management Studio,则在连接到 MDF 文件时,可能会遇到问题。
LINQPad是一款由Joseph Albahari编写的免费独立应用程序,并是C# 3.0 in a Nutshell一书中的附加程序。基本上,LINQPad是集成了IDE和SQL的LINQ解析器。LINQPad有简单而实用的用户界面,可即时执行LINQ查询,包括LINQ to SQL、LINQ to Objects和LINQ to XML等多语句查询。LINQPad UILINQPad提供了多种执行模式: C# (或 VB)表达式 可执行单条C#或VB的LINQ表达式,并在结果窗格中显示最终的对象 C# (或 VB)语句 可执行多条C#或VB的LINQ表达式,LINQPad有Dump扩展方法,在执行期间发送对象和文本到结果窗格 C# (或 VB)程序 在Main()函数中编写要执行的代码,可在LINQPad编辑器中定义其他类型和方法进行测试。 SQL 使用SQL支持特定数据查询记住LINQPad可执行任意C#或VB.NET代码非常重要,并不仅仅是LINQ表达式。这也意味着对于要进行简单测试的任何简短代码,LINQPad非常有用,例如:棘手的数字格式字符串或者匹配正则表达式。LINQPad含有用于显示LINQ细微差别和功能的多个LINQ示例表达式,包括初学者示例和更高级的概念,如:延迟执行和投影。LINQPad还有多用途分析功能,即显示结果的多种选择: 默认结果视图 由语句返回的对象和文本的简单图形 Lambda视图 LINQ表达式转换为可用的Lambda表达式 SQL视图 LINQ表达式转换为可用的SQL IL视图 针对代码生成的微软中间语言 LINQPad允许用户引用自定义程序集和导入自定义命名空间来进行扩展。通过这种扩展可以支持LINQ to Entities。 除了是学习和测试工具以外,LINQPad 针对SQL数据库执行特定查询方面越来越受欢迎。

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧