簡體   English   中英

使用Linq從數據庫獲取XML數據

[英]Using Linq to get XML data from database

我正在努力使用Linq獲取單個xml節點的值。

這是我的XML。

       <?xml version="1.0" encoding="utf-8"?>
       <record>
       <AddressLine1>abcd street</AddressLine1>
       <AddressLine2>xyz AVE</AddressLine2>
       <AddressCity>Illinois</AddressCity>
       <AddressState>Chicago</AddressState>
       <AddressZip>23434</AddressZip>
       </record>

這是我的C#代碼

    XElement xmlDoc = XElement.Parse(varQ.Content);
       //When I debug I find that xmlDoc contains the XML. So that is alright.

    var q = (from lpi in xmlDoc.Descendants("record")
            select new { AddressLine1 = lpi.Element("AddressLine1").Value,
            AddressLine2 = lpi.Element("AddressLine2").Value,
            AddressCity = lpi.Element("AddressCity").Value,
            AddressCountry = lpi.Element("AddressCountry").Value,
            AddressState = lpi.Element("AddressState").Value,
            AddressZip = lpi.Element("AddressZip").Value,
            }).FirstOrDefault();

var q顯示為空。 你能幫我找出問題在哪里嗎?

在DescendantsAndSelf上替換后代:

 string xml = @"<?xml version=""1.0"" encoding=""utf-8""?>
       <record>
       <AddressLine1>abcd street</AddressLine1>
       <AddressLine2>xyz AVE</AddressLine2>
       <AddressCity>Illinois</AddressCity>
       <AddressState>Chicago</AddressState>
       <AddressZip>23434</AddressZip>
       </record>";

            XElement xmlDoc = XElement.Parse(xml);
            var q = (from lpi in xmlDoc.DescendantsAndSelf("record")
                     select new
                     {
                         AddressLine1 = (string)lpi.Element("AddressLine1"),
                         AddressLine2 = (string)lpi.Element("AddressLine2"),
                         AddressCity = (string)lpi.Element("AddressCity"),
                         AddressCountry = (string)lpi.Element("AddressCountry"),
                         AddressState = (string)lpi.Element("AddressState"),
                         AddressZip = (string)lpi.Element("AddressZip"),
                     }).FirstOrDefault();
            Console.WriteLine(q);

打印:

{ AddressLine1 = abcd street, AddressLine2 = xyz AVE, AddressCity = Illinois, AddressCountry = , AddressState = Chicago, AddressZip = 23434 }

鏈接: https//dotnetfiddle.net/fXQivX

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM