簡體   English   中英

如何從XML中的特定元素中查找列表符/屬性?

[英]How to find a list of Elemenets/Attributes from a specific Element in XML?

如何查詢xml文檔以返回特定元素的子元素/屬性列表。

var entry = from item in doc.Descendants("GROUP")
                        where (string)item.Attribute("meetsMark") == "1"
                        select new
                        {                                
                            code = (string)item.Attribute("code"),                               
                        };

上面的代碼僅返回屬於元素GROUP的條目,其中MeetsMark屬性為“ 1”。 對於它返回代碼的每個元素,我還需要獲取其中包含的每個Summary屬性的'sum'和'number'列表。 示例:我需要查詢返回:

代碼=次要

總和= SUM1

數= 1

總和= SUM3

數= 3

總和= SUM4

數= 4

代碼= THIRD

總和= SUM10

數= 1

總和= SUM30

數= 3

總和= SUM40

數= 4

下面是xml結構。

 <GROUP id="GRP2" code="MAIN" meetsMark="0" <GROUP id="GRP3" code="SECONDARY" meetsMark="1" <ITEMS> <ITEM id="ITM6" <SUMMARY sum="SUM1" number="1" </SUMMARY> </ITEM> <ITEM id="ITM14" <SUMMARY sum="SUM3" number="3" </SUMMARY> </ITEM> <ITEM id="ITM15" <SUMMARY sum="SUM4" number="4" </SUMMARY> </ITEM> </ITEMS> </GROUP> <GROUP id="GRP4" code="THIRD" meetsMark="1" <ITEMS> <ITEM id="ITM95" <SUMMARY sum="SUM10" number="1" </SUMMARY> </ITEM> <ITEM id="ITM96" <SUMMARY sum="SUM30" number="3" </SUMMARY> </ITEM> <ITEM id="ITM97" <SUMMARY sum="SUM40" number="4" </SUMMARY> </ITEM> </ITEMS> </GROUP> </GROUP> 

就像這樣...(為清楚起見,省略了換行符)

var groups = from group in doc.Descendants("GROUP")
            where (string)group.Attribute("meetsMark") == "1"
            select group

var subgroups = from subgroup in groups.Descendants("GROUP")
           where subgroup.Attribute("code").Value == "SECONDARY"
           select subgroup;

foreach( var subgroup in subgroups )
{
   System.Console.WriteFormat( "code = {0}", subgroup.Attribute("code").Value );

   var sums = from summary in subgroup.Descendants("SUMMARY")

   foreach( var sum in sums )
   {
       System.Console.WriteFormat( "sum = {0}", subgroup.Attribute("sum").Value );
       System.Console.WriteFormat( "number = {0}", subgroup.Attribute("number").Value );
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM