Michael Maddison
michael at ddisolutions.com.au
Tue Sep 29 18:32:21 CDT 2009
Thanks Jim, Going through the docs on MSDN http://msdn.microsoft.com/en-us/library/bb675196.aspx they do it slightly differently... XmlReader r = XmlReader.Create ( @path ); while ( r.NodeType != XmlNodeType.Element ) r.Read ( ); XElement e = XElement.Load ( r ); IEnumerable<XAttribute> attList = from att in e.Elements ( ).Attributes ( "MID" ) //where (string) att.Value == "SR_20090929" //this works select att; foreach ( XAttribute att in attList ) { Console.WriteLine ( att.Value ); } Maybe they used a XmlReader just to demonstrate its use? Havn't found a best practices yet. When I suss out how to enumerate the races I'll post back. Cheers Michael M Michael, Something like this should work for your first questions. The Races nodes I've not figured out and I have a similar file that I'd like to read with LINQ (so if anyone knows how to get into the nested elements please respond). To get Summary attribute: XElement myNode = XElement.Load(@"myfile.xml"); var query = from summary in myNode.Elements("Summary") select summary; foreach (var summary in query) { m_summaryMID = (string)summary.Attribute("MID").Value; } To get VenueName: XElement myNode = XElement.Load(@"myfile.xml"); var query = from summary in myNode.Elements("Summary ") where (string) summary.Attribute("MID").Value == m_summaryMID select summary; foreach (var summary in query) { m_venueName = summary.Element("VenueName").Value; } I'd point you to a good tutorial but this info is about as much as I found. If anyone else knows of something a bit deeper I'm sure Michael and I would appreciate it. HTH, Jim DeMarco -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Michael Maddison Sent: Monday, September 28, 2009 11:34 PM To: Discussion concerning Visual Basic and related programming issues. Subject: [dba-VB] XML LINQ Help! Hi guys, VS2008 C# I've grabbed some XML data from a web service and I need to do some operations on it. This is all new to me and I'm a bit lost trying to follow MSDN docs. The data looks like this. <Data> <Summary MID="SR_20090924"> <VenueName>HAWKESBURY (NSW)</VenueName> <Type>R</Type> <Events>9</Events> <Track>GOOD </Track> <Weather>FINE </Weather> <Races> <Race RID="SR_20090924_01"> <Name>MADE JEWELLERY F&M MDN HCP</Name> <Distance>1400m </Distance> <Class> </Class> <RunnerNo Acceptors="13">13</RunnerNo> <JumpTime>12:10</JumpTime> <TimeToJump>+02:35:19</TimeToJump> <RaceStatus>Betting Open</RaceStatus> </Race> </Summary> <Summary ...> //more </Summary> </Data> I can load the xml using XElement racesFromFile = XElement.Load ( @path ); I need to do a variety of things. How do I get all the Summary Attributes? MID = ? How do I get VenueNAme? And all the raceIDs? Then using LINQ(?) get data specific to a RaceID? Maybe a pointer to a good tutorial would be appreciated. Cheers Michael M _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com