Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XML/C#循环通过同名节点_C#_Xml - Fatal编程技术网

XML/C#循环通过同名节点

XML/C#循环通过同名节点,c#,xml,C#,Xml,我有一个包含键和值的XML文件,当前我循环遍历XML文档,读取所有数据 但是,我有一些“键”或“节点”,它们具有相同的键名,但值不同(或相同)。 我需要在同一父节点中循环通过这些相同的节点 <tile> <x>0</x> <y>1</y> <name>Grass</name> <entity>Tree</entity> <entity>Buildi

我有一个包含键和值的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> 
谢谢

stringxml=@”
0
1
草
树
建筑
某物
";
var data=来自XElement.Parse(xml.genderantsandself(“平铺”)中的t
选择新的{
X=(int)t.元素(“X”),
Y=(int)t.元素(“Y”),
Name=(string)t.Element(“Name”),
实体=t.元素(“实体”)。选择(x=>x.Value)
};

我的XML是一个实际的文件(XmlDocument对象),而不是字符串。然后使用Load而不是Parse,我添加了另一个答案。
        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)
};