簡體   English   中英

XML / C#遍歷同名節點

[英]XML / C# Loop through nodes of the same name

我有一個包含鍵和值的XML文件,並且當前正在遍歷XML文檔,並且讀取了所有數據。

但是,我有某些具有相同鍵名但值不同(或相同)的“鍵”或“節點”。 我需要遍歷同一父節點內的這些相同節點。

<tile>
   <x>0</x>
   <y>1</y>
   <name>Grass</name>
   <entity>Tree</entity>
   <entity>Building</entity>
   <entity>Something</entity>
</tile>
<tile>
   <x>1</x>
   <y>2</y>
   <name>Dirt</name>
   <entity>Tree</entity>
   <entity>Building</entity>
</tile> 

我需要獲取X,Y和名稱,以及實體的數組/列表。 我需要XML中的每個Tile。

因此,我需要遍歷所有並獲取內容,包括帶有

當前代碼:

        XmlElement element = doc.DocumentElement;
        XmlNodeList nList = element.SelectNodes("/map/tile");
        foreach(XmlNode node in nList){
            int x = int.Parse(node["x"].InnerText);
            int y = int.Parse(node["y"].InnerText);
            String materialName = node["name"].InnerText;
            for(node["entity"] in allEntityNodesWithinThisTile){ }
        }

謝謝

string xml = @"<tile>
   <x>0</x>
   <y>1</y>
   <name>Grass</name>
   <entity>Tree</entity>
   <entity>Building</entity>
   <entity>Something</entity>
</tile>";

var data = from t in XElement.Parse(xml).DescendantsAndSelf("tile")
select new {
   X=(int)t.Element("x"),
   Y=(int)t.Element("y"),
   Name=(string)t.Element("name"),
   Entities= t.Elements("entity").Select (x => x.Value)
};
var data = from t in XElement.Load(xmlFileName).DescendantsAndSelf("tile")
select new {
   X=(int)t.Element("x"),
   Y=(int)t.Element("y"),
   Name=(string)t.Element("name"),
   Entities= t.Elements("entity").Select (x => x.Value)
};

暫無
暫無

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

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