C# 如何在C语言中解析多个元素属性值#
我有下面的xmlC# 如何在C语言中解析多个元素属性值#,c#,xml,xml-parsing,C#,Xml,Xml Parsing,我有下面的xml <Main> <Item ItemID="123456"> <Devtm PL="SP"></Devtm> <Devtm PL="RV"></Devtm> </Item> </Main> 这只是给我第一个元素值,即“SP”。我怎样才能得到第二个值呢?我不需要循环,因为我知道那里只有2个值 出于某些原因,LINQ也不是一个选项。如何使用
<Main>
<Item ItemID="123456">
<Devtm PL="SP"></Devtm>
<Devtm PL="RV"></Devtm>
</Item>
</Main>
这只是给我第一个元素值,即“SP”。我怎样才能得到第二个值呢?我不需要循环,因为我知道那里只有2个值
出于某些原因,LINQ也不是一个选项。如何使用XDocument实现它?您可以稍微重写代码以获得预期的结果。使用方法访问
项
元素,然后遍历其节点
var lineItemDetails=xdoc.Root?.subjects(“项”);
foreach(类型()的lineItemDetails?.Nodes()中的变量lineItemDetail)
{
var Devtm=lineItemDetail?属性(“PL”)?值;
控制台写入线(Devtm);
}
它打印SP
和RV
如果希望使用基于索引的访问,而不使用循环,这会有所帮助
var lineItemDetails=xdoc.Root?.genderantsandself(“项目”).FirstOrDefault();
var nodes=lineItemDetails?.degenantNodes().OfType().ToList();
Console.WriteLine(节点?[0]?.Attribute(“PL”)?.Value);
Console.WriteLine(节点?[1]?.Attribute(“PL”)?.Value);
是否有办法将其分配给另一个变量,如var Devtm[0]或var Devtm[1]?@sensahin我已使用基于索引的访问更新了代码是否可以将使用索引的访问与foreach循环一起使用?您提供的第一个解决方案?对不起,我不明白为什么/它没有意义,您在使用索引访问特定元素的循环中逐个访问元素
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);
}
}
}