使用LINQ to XML读取XML [英] Read XML using LINQ to XML

查看:71
本文介绍了使用LINQ to XML读取XML的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

任何人都可以告诉我任何关于LINQ到XML的优化 -

(查询检索所有具有Compartment == 1的Case节点)

Can anyone tell me any optimization for following LINQ to XML-
(Query retrieves all Case node having Compartment==1)

System.Xml.Linq.XDocument objDoc = System.Xml.Linq.XDocument.Load("ABC.xml");
            var objCases = from C in objDoc.Descendants("Case")
                           where C.Parent.Name.ToString().Trim() == "cases"
                            && C.Parent.Parent.Name.ToString().Trim() == "Data"
                            && C.Attribute("Compartment").Value.Trim() == "1"
                           select C;
            List<string> Lst_ExistingCase = new List<string>();
            foreach (var xCase in objCases)
            {
                if (xCase.Attribute("Id") != null)
                    Lst_ExistingCase.Add(xCase.Attribute("Id").Value.Trim());
            }
            objDoc = null;










//****** ABC.xml ******************
<Data>
  <cases>
    <Case Id="A" Compartment="1" />
    <Case Id="B" Compartment="2"/>
    <Case Id="C" Compartment="3"/>
    <Case Id="D" Compartment="1"/>
    <Case Id="E" Compartment="2"/>
    <Case Id="F" Compartment="3"/>
    <Case Id="G" Compartment="1"/>
  </cases>
 </Data>
 //********************************

推荐答案

请试试这个。



Please try this.

System.Xml.Linq.XDocument objDoc = System.Xml.Linq.XDocument.Load(HttpContext.Server.MapPath("XMLFile.xml"));

var objCases = (from C in objDoc.Descendants("Case") 
                where C.Attribute("Compartment").Value == "1"
                select C.Attribute("Id").Value).ToList();

            foreach (var Ids in objCases)
            {
                 Console.WriteLine(Ids);
            }





如果你想选择所有Case Node然后你可以使用这个





And if you want to select all Case Node then you can use this

var objCases = (from C in objDoc.Descendants("Case")
                     where C.Attribute("Compartment").Value == "1"
                     select C).ToList();


这篇关于使用LINQ to XML读取XML的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆