?
Solved

VB.NET routines to parse XML data from NOAA

Posted on 2013-12-04
10
Medium Priority
?
698 Views
Last Modified: 2013-12-12
Can someone please tell me how I can parse this data. I need to save it to a database but I just need the values but I am having difficulty. I am doing this in VB.NET and I need to be able to parse it through VB.NET.  I have attached the XML file I need to parse....

PLEASE HELP ME!!!
Weather.xml
0
Comment
Question by:jknj72
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
10 Comments
 
LVL 11

Expert Comment

by:MajorBigDeal
ID: 39696625
Which version of .Net are you using?  The best approach for parsing XML is different depending on what features you have available to you.
0
 
LVL 63

Expert Comment

by:Fernando Soto
ID: 39696638
Hi jknj72;

Exactly which nodes and values do you wish to parse from the XML document you have uploaded? Please be specific, thank you.
0
 
LVL 18

Expert Comment

by:UnifiedIS
ID: 39696675
You can use a dataset and its readxml method
Dim ds As New DataSet
ds.ReadXml

the dataset will create tables that you can review to determine the column names/indices that you need to grab.

There are going to be lots of different ways to consume XML so the best choice will be highly dependent on your scenario.
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:jknj72
ID: 39696679
I am using VB.NET 2010

I am looking to get pretty much everything below the </head> but I really dont need the location since I have those values saved.
What I REALLY need is the time-layouts with the applicable key values and descriptions and ALL the parameter values.
If you have ANY other questions I will keep checking in and I will answer anything you need(if I can of course) ;)

THANK YOU SO MUCH FOR YOUR HELP!!!
0
 

Author Comment

by:jknj72
ID: 39696680
fyi, I am doing this in a VB.NET Console app to be scheduled to run periodically throughout the day
0
 

Author Comment

by:jknj72
ID: 39698498
Any thoughts???
0
 
LVL 11

Expert Comment

by:MajorBigDeal
ID: 39699412
Something like this would work:

XmlDocument xmlDoc= new XmlDocument();
xmlDoc.Load("Weather.xml");
XmlNodeList timeLayouts = xmlDoc.GetElementsByTagName("time-layout");
0
 
LVL 11

Expert Comment

by:MajorBigDeal
ID: 39699476
Sorry, I just realized that you are using VB, but your code should be very similar with some minor syntax differences.  The Class names will be the exact same.    

The XmlNodeList above is a list of XmlNodes.  Each XmlNode has a Name property that tells you which element it is. There is an Attributes property that contains zero or more XmlAttribute object.  Each XmlAttribute object has a name and a value.  The XmlNode object also has the ChildNodes property which contains the children which are also XmlNode objects.  

This approach is very solid although it does require coding to match the document.  As previously mentioned there are many different ways to do this depending on your situation but this is one tried-and-true way to do it.      

In my experience, the easiest way to code this approach is to have a separate method for each element name.  The method would accept an XmlNode object.  Each method would have 2 Select Case statements:  one inside an attribute loop and another inside a child node loop.  Inside the child node loop the select case would call the appropriate method based on the node name, passing in the current XmlNode object.

If you try this and run into trouble, just post back with the specific problem you are having.
0
 
LVL 11

Accepted Solution

by:
MajorBigDeal earned 2000 total points
ID: 39699519
I should also mention that the text inside an element is also considered a child node.  So inside the child node loop you check the class of the node.  If the XmlNode is an object of XmlElement class then it is a regular child node, otherwise it represents the text of the element and you can use the Value property to get that text.  

So for example, looking at the following element:  

<start-valid-time period-name="Tonight">2013-12-03T18:00:00-06:00</start-valid-time>

You would have a method to process any XmlNode that has a name of "start-valid-time".  Inside that method, you would loop over the attributes and pick out value of the "period-name" which in this case would be "Tonight".  In the same method you would loop over the child nodes.  In this case there would only be one child node and it has a value of "2013-12-03T18:00:00-06:00".
0
 

Author Closing Comment

by:jknj72
ID: 39715118
thanks
0

Featured Post

Free Backup Tool for VMware and Hyper-V

Restore full virtual machine or individual guest files from 19 common file systems directly from the backup file. Schedule VM backups with PowerShell scripts. Set desired time, lean back and let the script to notify you via email upon completion.  

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The ECB site provides FX rates for major currencies since its inception in 1999 in the form of an XML feed. The files have the following format (reducted for brevity) (CODE) There are three files available HERE (http://www.ecb.europa.eu/stats/exch…
Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
NetCrunch network monitor is a highly extensive platform for network monitoring and alert generation. In this video you'll see a live demo of NetCrunch with most notable features explained in a walk-through manner. You'll also get to know the philos…
This tutorial will teach you the special effect of super speed similar to the fictional character Wally West aka "The Flash" After Shake : http://www.videocopilot.net/presets/after_shake/ All lightning effects with instructions : http://www.mediaf…
Suggested Courses

764 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question