久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

    <small id='AJBuH'></small><noframes id='AJBuH'>

    1. <tfoot id='AJBuH'></tfoot>

    2. <i id='AJBuH'><tr id='AJBuH'><dt id='AJBuH'><q id='AJBuH'><span id='AJBuH'><b id='AJBuH'><form id='AJBuH'><ins id='AJBuH'></ins><ul id='AJBuH'></ul><sub id='AJBuH'></sub></form><legend id='AJBuH'></legend><bdo id='AJBuH'><pre id='AJBuH'><center id='AJBuH'></center></pre></bdo></b><th id='AJBuH'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='AJBuH'><tfoot id='AJBuH'></tfoot><dl id='AJBuH'><fieldset id='AJBuH'></fieldset></dl></div>
      • <bdo id='AJBuH'></bdo><ul id='AJBuH'></ul>

      1. <legend id='AJBuH'><style id='AJBuH'><dir id='AJBuH'><q id='AJBuH'></q></dir></style></legend>

        使用 LINQ 解析 XML 以獲取子元素

        Parse XML with LINQ to get child elements(使用 LINQ 解析 XML 以獲取子元素)

        <small id='H7wLS'></small><noframes id='H7wLS'>

          <tfoot id='H7wLS'></tfoot>

          <legend id='H7wLS'><style id='H7wLS'><dir id='H7wLS'><q id='H7wLS'></q></dir></style></legend>
          <i id='H7wLS'><tr id='H7wLS'><dt id='H7wLS'><q id='H7wLS'><span id='H7wLS'><b id='H7wLS'><form id='H7wLS'><ins id='H7wLS'></ins><ul id='H7wLS'></ul><sub id='H7wLS'></sub></form><legend id='H7wLS'></legend><bdo id='H7wLS'><pre id='H7wLS'><center id='H7wLS'></center></pre></bdo></b><th id='H7wLS'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='H7wLS'><tfoot id='H7wLS'></tfoot><dl id='H7wLS'><fieldset id='H7wLS'></fieldset></dl></div>

              • <bdo id='H7wLS'></bdo><ul id='H7wLS'></ul>

                    <tbody id='H7wLS'></tbody>
                  本文介紹了使用 LINQ 解析 XML 以獲取子元素的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  <?xml version="1.0" standalone="yes"?>
                  <CompanyInfo>
                       <Employee name="Jon" deptId="123">
                        <Region name="West">
                          <Area code="96" />
                        </Region>
                        <Region name="East">
                          <Area code="88" />
                        </Region>
                       </Employee>
                  </CompanyInfo>  
                  
                  public class Employee
                  {
                      public string EmployeeName { get; set; }
                      public string DeptId { get; set; }
                      public List<string> RegionList {get; set;}
                  }
                  
                  public class Region
                  {
                      public string RegionName { get; set; }
                      public string AreaCode { get; set; }
                  }
                  

                  我正在嘗試讀取這個 XML 數據,到目前為止我已經嘗試過:

                  I am trying to read this XML data, so far I have tried this:

                  XDocument xml = XDocument.Load(@"C:data.xml");
                  var xElement = xml.Element("CompanyInfo");
                  if (xElement != null)
                      foreach (var child in xElement.Elements())
                      {
                          Console.WriteLine(child.Name);  
                          foreach (var item in child.Attributes())
                          {
                              Console.WriteLine(item.Name + ": " + item.Value);
                          }
                  
                          foreach (var childElement in child.Elements())
                          {
                              Console.WriteLine("--->" + childElement.Name);
                              foreach (var ds in childElement.Attributes())
                              {
                                  Console.WriteLine(ds.Name + ": " + ds.Value);
                              }
                              foreach (var element in childElement.Elements())
                              {
                                  Console.WriteLine("------->" + element.Name);
                                  foreach (var ds in element.Attributes())
                                  {
                                      Console.WriteLine(ds.Name + ": " + ds.Value);
                                  }
                              }
                          }                
                      }
                  

                  這使我能夠獲取每個節點,其屬性名稱和值,因此我可以將這些數據保存到數據庫中的相關字段中,但這似乎是一個冗長的方式,并且不靈活,例如,如果 XML 結構發生變化,所有這些 foreach 語句都需要重新訪問,那么這種方式也很難過濾數據,我需要編寫某些 if 語句來過濾數據(例如,僅從 West 獲取員工等...)

                  This enables me to get each node, its attribute name and value and so I can save these data into the relevant field in database, but this seems a long winded way and not flexible, for instance if the XML structure changes all those foreach statements needs revisiting, also it is difficult to filter the data this way, I need to write certain if statements to filter the data (e.g get employees from West only etc...)

                  我一直在尋找一種更靈活的方式,使用 linq,如下所示:

                  I was looking for a more flexible way, using linq, something like this:

                  List<Employees> employees =
                                (from employee in xml.Descendants("CompanyInfo")
                                 select new employee
                                 {
                                     EmployeeName = employee.Element("employee").Value,
                                     EmployeeDeptId = ?? get data,
                                     RegionName = ?? get data,
                                     AreaCode = ?? get data,,
                                 }).ToList<Employee>();
                  

                  但我不確定如何從子節點獲取值并應用過濾(僅獲取某些員工).這可能嗎?任何幫助表示贊賞.

                  But I am not sure how I can get the values from the child nodes and apply the filtering (to get the certain employees only). Is this possible? Any help is appreciated.

                  謝謝

                  推薦答案

                  var employees = (from e in xml.Root.Elements("Employee")
                                   let r = e.Element("Region")
                                   where (string)r.Attribute("name") == "West"
                                   select new Employee
                                   {
                                       EmployeeName = (string)e.Attribute("employee"),
                                       EmployeeDeptId = (string)e.Attribute("deptId"),
                                       RegionName = (string)r.Attribute("name"),
                                       AreaCode = (string)r.Element("Area").Attribute("code"),
                                   }).ToList();
                  

                  但當 XML 文件結構發生變化時,仍需要修改查詢.

                  But it will still require query revision when XML file structure changes.

                  編輯

                  查詢每個員工的多個區域:

                  Query for multiple regions per employee:

                  var employees = (from e in xml.Root.Elements("Employee")
                                   select new Employee
                                   {
                                       EmployeeName = (string)e.Attribute("employee"),
                                       DeptId = (string)e.Attribute("deptId"),
                                       RegionList = e.Elements("Region")
                                                     .Select(r => new Region {
                                                         RegionName = (string)r.Attribute("name"),
                                                         AreaCode = (string)r.Element("Area").Attribute("code")
                                                     }).ToList()
                                   }).ToList();
                  

                  然后,您可以僅篩選來自給定區域的員工列表:

                  You can then filter the list for employees from given region only:

                  var westEmployees = employees.Where(x => x.RegionList.Any(r => r.RegionName == "West")).ToList();
                  

                  這篇關于使用 LINQ 解析 XML 以獲取子元素的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  Ignore whitespace while reading XML(讀取 XML 時忽略空格)
                  XML to LINQ with Checking Null Elements(帶有檢查空元素的 XML 到 LINQ)
                  Reading XML with unclosed tags in C#(在 C# 中讀取帶有未閉合標簽的 XML)
                  Parsing tables, cells with Html agility in C#(在 C# 中使用 Html 敏捷性解析表格、單元格)
                  delete element from xml using LINQ(使用 LINQ 從 xml 中刪除元素)
                  Parse malformed XML(解析格式錯誤的 XML)
                    <tbody id='GUUdV'></tbody>
                  <legend id='GUUdV'><style id='GUUdV'><dir id='GUUdV'><q id='GUUdV'></q></dir></style></legend>
                    • <bdo id='GUUdV'></bdo><ul id='GUUdV'></ul>
                    • <i id='GUUdV'><tr id='GUUdV'><dt id='GUUdV'><q id='GUUdV'><span id='GUUdV'><b id='GUUdV'><form id='GUUdV'><ins id='GUUdV'></ins><ul id='GUUdV'></ul><sub id='GUUdV'></sub></form><legend id='GUUdV'></legend><bdo id='GUUdV'><pre id='GUUdV'><center id='GUUdV'></center></pre></bdo></b><th id='GUUdV'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='GUUdV'><tfoot id='GUUdV'></tfoot><dl id='GUUdV'><fieldset id='GUUdV'></fieldset></dl></div>

                      <small id='GUUdV'></small><noframes id='GUUdV'>

                          1. <tfoot id='GUUdV'></tfoot>

                            主站蜘蛛池模板: 中文字幕在线视频网站 | 亚洲精品性视频 | 欧美激情视频一区二区三区在线播放 | 亚洲aⅴ一区二区 | 欧美在线观看一区 | 中文字幕亚洲视频 | 丁香婷婷成人 | 久久久久久久久久久久91 | 国内自拍偷拍视频 | 亚洲精品一区国语对白 | 国产激情综合五月久久 | 久久男人 | 久久久视 | 欧美一区二区三区视频 | 成人精品视频在线观看 | 国产精品高清在线 | 国产在线资源 | 91精品国产91综合久久蜜臀 | 中文字幕日韩欧美一区二区三区 | 日本黄色大片免费 | 97狠狠干| 国产一区二区三区免费观看在线 | 亚洲成人av在线 | 中文字幕综合在线 | 一级欧美视频 | 欧美一区永久视频免费观看 | 日日干夜夜草 | 精品少妇一区二区三区日产乱码 | 免费观看成人性生生活片 | 国产视频1区2区 | 久久亚洲高清 | 一级毛片视频 | 一区欧美 | 伊人久久精品一区二区三区 | 91视频大全| 一区二区三区中文字幕 | 亚洲天堂中文字幕 | 国产综合久久久久久鬼色 | 国产二区在线播放 | 久热9| 午夜爱爱毛片xxxx视频免费看 |