代码之家  ›  专栏  ›  技术社区  ›  brad

使用LINQ to XML查询子节点的内部XML

  •  3
  • brad  · 技术社区  · 15 年前

    假设我有这个XML:

    <items>
      <item name="thumb">
        <downloadStream>test1</downloadStream>
        <downloadStream>test2</downloadStream>
        <downloadStream>test3</downloadStream>
      </item>
      <item name="photo">
        <downloadStream>test5</downloadStream>
        <downloadStream>test6</downloadStream>
        <downloadStream>test7</downloadStream>
      </item>
    </items>
    

    我正在尝试编写一个LINQ to XML语句,该语句返回:

    “测试5”、“测试6”、“测试7”

    换句话说,它返回每个“downloadstream”节点的内部XML,其中父节点的属性为(name=“photo”)。

    我该怎么做?

    1 回复  |  直到 15 年前
        1
  •  8
  •   waterlooalex    15 年前

    像这样:

                var rootElement = XElement.Parse(xml);
                var results = rootElement.
                   .Elements()
                   .Where( e => e.Attribute("name") == "photo" )
                   .SelectMany( e => e.Elements )
                   .Select( e => e.Value );