Jag har en xml-fil som ser ut så här: Det verkar som att casingen skiljer sig mellan din kod och XML-datan. Testa om det fungerar om du ändrar child.Element("Gamepath") till child.Element("gamepath").XML dokument problem
<?xml version="1.0" encoding="UTF-8"?>
-<Games>
-<Game> <Name>Steam</Name>
<Gamepath>d:/program/steam</Gamepath>
<Modpath>None</Modpath> </Game> -
<Game> <Name>empire</Name>
<Gamepath>d:/program/steam/SteamApps/common/empire_total_war</Gamepath> <Modpath>D:\Sparade_Filer\förSpel\TotalWar\Empire\Nya mod</Modpath> </Game>
-<Game> <Name>napoleon</Name>
<Gamepath>d:/program/steam/SteamApps/common/napoleon_total_war</Gamepath> <Modpath>D:\Sparade_Filer\förSpel\TotalWar\Napoleon\Mod</Modpath> </Game>
-<Game> <Name>shogun2</Name>
<Gamepath>d:/program/steam/SteamApps/common/total_war_shogun_2</Gamepath> <Modpath>None</Modpath>
</Game>
</Games>
Det som jag har problem med är att läsa visa noder..
string sCheck="";
XElement xml = XElement.Load(XMLfile);
foreach (XElement child in xml.Elements())
{
if (what == "Game")
{
XElement Name = child.Element("Name");
XElement Gpath = child.Element("Gamepath");
XElement Mpath = child.Element("Modpath");
sCheck= Name.ToString().Replace("<Name>", "").Replace("</Name>", "");
if (sCheck == gamename)
{
if (what == "Game")
newString = sCheck;
else if (what == "Getpath")
newString = Gpath.ToString();
else if (what == "Getmod")
newString = Mpath.ToString();
}
}
}
I detta fallet så kan jag läsa av Name, men inte Gpath eller Mpath.
Jag vore väldigt tacksam om jag fick lite hjälp här.
Sv: XML dokument problem
Om du använder en version av .Net som innehåller LINQ kan du använda LINQ to XML för att ställa frågor mot dokumentet. Ger i många fall en mer lättläst kod. Exempel:var games =
from game in xml.Elements()
where
game.Name == "game"
&& game.Element("name") != null
&& game.Element("name").Value == gamename
select game;
foreach (var game in games)
{
//logik
}
Med vänlig hälsning
Peter Ilis