LINQ学习笔记:投射到X-DOM
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-03-13
nt不允许按流行的方法读取流的内容——为了达到这个目标, 你必须和X-DOM一起使用XmlReader.
转换X-DOM 我们可以通过重新投影来转换一个X-DOM. 例如, 假设我们想要转换一个msbuild的XML文件到一个简单的格式以便可以用其产生一个报表. 一个mubuild文件看起来类似这样: 1: <Project DefaultTargets="Build" 2: xmlns="http://schemas.microsoft.com/dev...> 3: <PropertyGroup>
4: <Platform Condition=" ''$(Platform)'' == '''' "> 5: AnyCPU
6: </Platform>
7: <ProductVersion>9.0.11209</ProductVersion>
8: ...
9: </PropertyGroup>
10: <ItemGroup>
11: <Compile Include="ObjectGraph.cs" /> 12: <Compile Include="Program.cs" /> 13: <Compile Include="Properties\AssemblyInfo.cs" /> 14: <Compile Include="Tests\Aggregation.cs" /> 15: <Compile Include="Tests\Advanced\RecursiveXml.cs" />
16: </ItemGroup>
17: <ItemGroup>
18: ...
19: </ItemGroup>
20: ...
21: </Project>
假设我们只想包含文件, 如下: 1: <ProjectReport>
2: <File>ObjectGraph.cs</File>
3: <File>Program.cs</File>
4: <File>Properties\AssemblyInfo.cs</File>
5: <File>Tests\Aggregation.cs</File>
6: <File>Tests\Advanced\RecursiveXml.cs</File>
7: </ProjectReport>
以下的查询执行了这个变换: 1: XElement project = XElement.Load("myProjectFile.csproj"); 2: XNamespace ns = project.Name.Namespace;
3: var query =
4: new XElement ("ProjectReport", 5: from compileItem in 6: project.Elements (ns + "ItemGroup") 7: .Elements (ns + "Compile") 8: let include = compileItem.Attribute ("Include") 9: where include != null 10: select new XElement ("File", include.Value) 11: );
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于LINQ学习笔记:投射到X-DOM的所有评论