从元素C#获取元素内容

时间:2018-08-06 11:32:47

标签: c# xml

so here is the code i am using to get the other elements from my xml.

我有一个数据网格视图,该视图显示许多其他元素,但是每当我尝试获取“ Address1”等时,都会引发错误。但是我可以调用“地址”,并将地址的所有元素都放入datagridview的一个单元格中。

有人可以帮我自己获得“地址1”和“地址2”等信息吗?我现在坚持了一段时间。 因此,我试图从“地址1和地址2”中获取详细信息

enter image description here

先谢谢了。

2 个答案:

答案 0 :(得分:0)

您可以使用XElement解析XML。即:

void Main()
{
     string s = @"<address>
     <address1>Address 1</address1>
     <address2>Address 2</address2>
     <address3>Address 3</address3>
     <address4>Address 4</address4>
     <postcode>1234</postcode>
     <country>MyCountry</country>
     </address>";

    var data = from r in XElement.Parse(s).DescendantsAndSelf("address")
               select new {
                Address1 = (string)r.Element("address1"),
                Address2 = (string)r.Element("address2"),
                Address3 = (string)r.Element("address3"),
                Address4 = (string)r.Element("address4"),
                Postcode = (string)r.Element("postcode"),
                Country = (string)r.Element("country")
               };
 foreach(var d in data)
 {
   Console.WriteLine($"Address line1:{d.Address1}, Postcode:{d.Postcode}");
 }
}

答案 1 :(得分:0)

您可以使用XDocument,然后轻松混合任何节点或其子节点的值 请参见以下示例:

var xdoc = XDocument.Load("filePath, xml as a stream, xml reader or text reader" );
var elems = fileDataXDoc.Descendants("Address").Elements();

上面的代码部分将所有子地址节点返回为IEnumerable<XElements> 那么你可以使用它