如何在C#中解析多个元素属性值

感觉

我有下面的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实现它?

帕维尔·阿尼克豪斯基(Pavel Anikhouski)

您可以稍微重写一下代码以获得预期的结果。使用Descendants方法访问Item元素,然后遍历其节点

var lineItemDetails = xdoc.Root?.Descendants("Item");

foreach (var lineItemDetail in lineItemDetails?.Nodes().OfType<XElement>())
{
    var Devtm = lineItemDetail?.Attribute("PL")?.Value;
    Console.WriteLine(Devtm);
}

它打印SPRV

如果要使用无循环的基于索引的访问,这可以帮助您

var lineItemDetails = xdoc.Root?.DescendantsAndSelf("Item").FirstOrDefault();
var nodes = lineItemDetails?.DescendantNodes().OfType<XElement>().ToList();

Console.WriteLine(nodes?[0]?.Attribute("PL")?.Value);
Console.WriteLine(nodes?[1]?.Attribute("PL")?.Value);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在C#中的元素中获取XML属性

来自分类Dev

如何在C#中的元素中获取XML属性

来自分类Dev

如何在 C# 中获取类属性的属性值

来自分类Dev

如何在C#枚举中获取元素的Display属性

来自分类Dev

如何在C#中替换列表中的多个值?

来自分类Dev

如何在C#中解析oracle tnsname值?

来自分类Dev

如何在C#中查询多个值的列表

来自分类Dev

如何在C#中通过反射获取属性值

来自分类Dev

如何在C#中访问subObject属性值

来自分类Dev

如何从 C# 中的 Xml 解析元素?

来自分类Dev

从XML文件的多个内部元素获取名称属性值到C#中

来自分类Dev

如何从C#中的特定元素值中检索属性值

来自分类Dev

如何在 C# 中使用 XPathEvaluate 方法通过 Xpath 获取节点元素属性的值?

来自分类Dev

如何在c#中创建属性

来自分类Dev

C#:如何在xml文件的多个记录中的特定位置添加xml元素

来自分类Dev

如何在 Android 中解析多个 Json 值?

来自分类Dev

如何在以列表为值的字典中搜索多个元素?

来自分类Dev

如何在C#中解析不明确的枚举值?

来自分类Dev

如何在多个C#类之间共享属性

来自分类Dev

如何在多个C#类之间共享属性

来自分类Dev

如何在cypress中获取元素的属性值?

来自分类Dev

如何在Laravel中同步同一属性的多个值?

来自分类Dev

如何在 XSLT 中为属性使用多个值

来自分类Dev

如何在C#中对xml数据进行排序以根据元素的值获取特定数据

来自分类Dev

如何在C#中向字典添加多个值

来自分类Dev

如何在MVC C#中的多个控制器之间共享会话值?

来自分类Dev

c#如何在数组类构造函数中存储多个值?

来自分类Dev

如何在C#中向字典添加多个值

来自分类Dev

如何在C#中的一个类的多个实例之间共享值?

Related 相关文章

  1. 1

    如何在C#中的元素中获取XML属性

  2. 2

    如何在C#中的元素中获取XML属性

  3. 3

    如何在 C# 中获取类属性的属性值

  4. 4

    如何在C#枚举中获取元素的Display属性

  5. 5

    如何在C#中替换列表中的多个值?

  6. 6

    如何在C#中解析oracle tnsname值?

  7. 7

    如何在C#中查询多个值的列表

  8. 8

    如何在C#中通过反射获取属性值

  9. 9

    如何在C#中访问subObject属性值

  10. 10

    如何从 C# 中的 Xml 解析元素?

  11. 11

    从XML文件的多个内部元素获取名称属性值到C#中

  12. 12

    如何从C#中的特定元素值中检索属性值

  13. 13

    如何在 C# 中使用 XPathEvaluate 方法通过 Xpath 获取节点元素属性的值?

  14. 14

    如何在c#中创建属性

  15. 15

    C#:如何在xml文件的多个记录中的特定位置添加xml元素

  16. 16

    如何在 Android 中解析多个 Json 值?

  17. 17

    如何在以列表为值的字典中搜索多个元素?

  18. 18

    如何在C#中解析不明确的枚举值?

  19. 19

    如何在多个C#类之间共享属性

  20. 20

    如何在多个C#类之间共享属性

  21. 21

    如何在cypress中获取元素的属性值?

  22. 22

    如何在Laravel中同步同一属性的多个值?

  23. 23

    如何在 XSLT 中为属性使用多个值

  24. 24

    如何在C#中对xml数据进行排序以根据元素的值获取特定数据

  25. 25

    如何在C#中向字典添加多个值

  26. 26

    如何在MVC C#中的多个控制器之间共享会话值?

  27. 27

    c#如何在数组类构造函数中存储多个值?

  28. 28

    如何在C#中向字典添加多个值

  29. 29

    如何在C#中的一个类的多个实例之间共享值?

热门标签

归档