0
<root>
    <abc:Description abc:about="XXX.XXX_CSData-2">
        <xxx:Data.Curve abc:resource="XXX.XXX"/>
        <xxx:Data.y2AData abc:datatype="#int">27</xxx:Data.y2AData>
        <xxx:Data.y1AData abc:datatype="#int">-27</xxx:Data.y1AData>
        <xxx:Data.xAData abc:datatype="#int">60</xxx:Data.xAData>
        <xxx:IdentifiedObject.description abc:datatype="#string">SOME NAME</xxx:IdentifiedObject.description>
        <xxx:IdentifiedObject.name abc:datatype="#string">XXX_CCC.XX</xxx:IdentifiedObject.name>
        <abc:type abc:resource="http://iec.ch/TC57/2008/xxx-schema-xxx13#Data"/>
      </abc:Description>
      <abc:Description abc:about="XXX.XXX">
        <xxx:ConnectivityNode.MemberOf_EquipmentContainer abc:resource="XXX.XXX"/>
        <xxx:IdentifiedObject.description abc:datatype="#string">XXX.XXX</xxx:IdentifiedObject.description>
        <xxx:IdentifiedObject.name abc:datatype="#string">XXX.XXX</xxx:IdentifiedObject.name>
        <abc:type abc:resource="http://iec.ch/TC57/2008/xxx-schema-xxx13#ConnectivityNode"/>
        <xxx:ConnectivityNode.Terminals abc:resource="XXX.XXX"/>
        <xxx:ConnectivityNode.Terminals abc:resource="XXX.XXX"/>
        <xxx:ConnectivityNode.Terminals abc:resource="JXXX.XXX"/>
        <xxx:ConnectivityNode.Terminals abc:resource="JXXX.XXX"/>
      </abc:Description>
</root>

皆さんこんにちは、

上記の XML スニペットでは、タグは "xxx:IdentifiedObject.description"、"IdentifiedObject.name"、および "abc:type" であり、2 つの子ノード間で共通です。

子要素に共通する (少なくとも 1 回出現する) これらのタグ名を返す LINQ クエリを作成したいと考えています。タグ名が必要ですが、タグの値は 1) "xxx:IdentifiedObject.description"、2) "IdentifiedObject.name"、3) "abc:type" です。

4

1 に答える 1

2

次のようなものが必要なようです。

// Given x and y as the parent elements you're interested in
var commonNames = x.Elements()
                   .Select(x => x.Name)
                   .Intersect(y.Elements().Select(y => y.Name));

それはあなたに与えるでしょうIEnumerable<XName>

于 2013-04-24T19:52:52.803 に答える