I have an xml formatted document that looks like this:
<?xml version="1.0" encoding="windows-1250"?>
< Recipe>
< Entry name="Stuffed Red Cabbage" ethnicity="Slavic" />
< Cook_Time Hrs="1" Mins="30" />
< Ingredients>
< Cabbage Amount="1" Measurement="head" />
< Egg Amount="1" Measurement="unit" />
< Ground_Beef Amount="1" Measurement="lb" />
< Margarine Amount="1/2" Measurement="cup" />
< Onion Amount="1" Measurement="unit" />
< Rice Amount="1" Measurement="cup" />
< Tomato_Soup Amount="3" Measurement="cans" />
< /Ingredients>
< Description>core cabbage and boil until leaves start pulling away. Strip leaves and let cool.
chop onion and place in frying pan with margarine and heat till lightly browned.
put ground beef, rice, onion, egg and salt to taste in bowl and mix.
stuff each leaf with mixture.
put tomato soup and stuffed leaves in pot and cook for about an hour.</Description>
</Recipe>
and I have code that so far looks like this:
OpenFileDialog1.Filter = "RecipeBook files (*.rcp)|*.rcp"
If OpenFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
Try
Dim settings As New XmlReaderSettings()
settings.IgnoreComments = True
Dim RecipeCard As String = OpenFileDialog1.FileName
Dim xmlreader As XmlTextReader
xmlreader = New XmlTextReader(RecipeCard)
Do While xmlreader.Read
'needs to read xml and write appropriate items to database and listview
xmlreader.MoveToContent()
If xmlreader.Name.Equals("Entry") Then
MessageBox.Show(xmlreader.GetAttribute("name") & " " & xmlreader.GetAttribute("ethnicity"), "test")
End If
If xmlreader.Name.Equals("Cook_Time") Then
MessageBox.Show(xmlreader.GetAttribute("Hrs") & " hrs " & xmlreader.GetAttribute("Mins") & " mins", "test")
End If
If xmlreader.Name.Equals("Ingredients") Then
End If
Loop
Catch
End Try
End If
My question has to do with parsing the Ingredients section. I was planning on doing something like this:
Dim IngredientCount As Integer = 0
Dim count As Integer = (something here that gets the count of subelements inside the Ingredients element)
For i = 1 To count
MessageBox.Show(xmlreader.GetAttribute("Amount") & " " & xmlreader.GetAttribute("Measurement"), "test")
Next
I just can't figure out how to get the number of subelements and then how to refer to each one in succession to get the name and then the attributes of that subelement. Any suggestions would be greatly appreciated.