我在xml以下;
<Main>
<Item ItemID="123456">
<Devtm PL="SP"></Devtm>
<Devtm PL="RV"></Devtm>
</Item>
</Main>
我正在尝试获取所有属于Devtm元素的值。该元素可以具有带有PL属性的多个值。
using (WebResponse response = request.GetResponse())
{
using (StreamReader rd = new StreamReader(response.GetResponseStream()))
{
string soapResult = rd.ReadToEnd();
var xdoc = XDocument.Parse(soapResult);
var lineItemDetails = xdoc.Descendants("Main");
foreach (var lineItemDetail in lineItemDetails)
{
var Devtm = lineItemDetail.Element("Item")?.Element("Devtm")?.Attribute("PL")?.Value;
Console.WriteLine(Devtm);
}
}
}
这只是给我第一个元素值“ SP”。我也如何获得第二个值?我不需要循环,因为我知道那里只有2个值。
Linq出于某些原因也不可选项。如何使用XDocument实现它?有什么想法吗?
var lineItemDetails = xdoc.Root?.DescendantsAndSelf("Item");
foreach (XElement lineItemDetail in lineItemDetails.Nodes())
{
var Devtm = lineItemDetail?.Attribute("PL")?.Value;
Console.WriteLine(Devtm);
}
它打印SP
和RV