[dba-VB] XML LINQ Help!

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





More information about the dba-VB mailing list