Jag fick hjälp av Pelle i ett tidigare inlägg att spara informationen från en XML-fil i ett DataSet: En liten fråga: Måste du använda ett DataSet när du kollar värden i XML-filen? Om inte skulle jag föreslå att du använder XPathExpressions och loopar igenom XML-filen istället för DataSettet. Jag tycker personligen att det är lättre. Tänkte fråga: XmlDocument, måste man lägga till något bibliotek för denna? Eller finns denna endast i ASP.NET 2.0? Du ska använda System.Xml och System.Xml.XPath.Läsa in taggar med "undertaggar" från XML-fil
DataSet XMLDataSet = new DataSet();
XMLDataSet.ReadXml(Server.MapPath( "Sebastian_history.xml" ));
foreach ( DataRow dr in XMLDataSet.Tables[0].Rows )
{
strTitle = dr["TotalTimeSeconds"].ToString();
}
Men problemet är att min XML-fil har "undertaggar", och min funktion verkar inte kunna läsa dessa, utan säger att "TotalTimeSeconds" inte tillhör <History>, alltså informationen som är intressant ligger under <Run>-taggen, hur gör jag för att få ut informationen??
Exempel från XML-filen finns här under (den är självklart längre men jag har tatt enbart det väsentligaste)
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<History>
<Running Name="Löpning">
<Run>
<Lap StartTime="2007-04-17T06:40:11Z">
<TotalTimeSeconds>3.190000</TotalTimeSeconds>
<DistanceMeters>0.000000</DistanceMeters>
<MaximumSpeed>0.000000</MaximumSpeed>
<Calories>0</Calories>
<Intensity>Active</Intensity>
<Cadence>255</Cadence>
<TriggerMethod>Manual</TriggerMethod>
....
....
Sv: Läsa in taggar med "undertaggar" från XML-fil
XmlDocument doc = new XmlDocument();
doc.Load("Sebastian_history.xml");
//Select nodes with XPathExpression
XmlNodeList nodes = doc.SelectNodes("history/running/run/*");
foreach (XmlNode node in nodes)
{
if(node.Name == "TotalTimeSeconds")
{
strTitel = node.InnerText;
}
}
Nått likande som ovan borde hjälpa.
Sv:Läsa in taggar med "undertaggar" från XML-fil
Sv: Läsa in taggar med "undertaggar" från XML-fil