XML reader error

A

Aaron

I asked for a script that can read info inside a specific xml tag and
someone gave me this example.

XmlReader reader = new XmlTextReader( filename );
while ( reader.Read() )
{
if ( reader.NodeType == XmlNodeType.Element )
{
string val;
switch ( reader.Name )
{
case "first-name":
val = reader.ReadElementString();
// do something
break;
case "last-name":
val = reader.ReadElementString();
// do something
break;
default: break;
}
}
}

This script worked fine until I tried to open an xml file with nested
tags.

for example the xml looks like this
<book>
<genre>
<action>ABC</action>
<bio>DFK</bio>
</genre>
</book>

I would like the result to be this when i select to read the <genre>
tag

<action>ABC</action>
<bio>DFK</bio>

but it gives me this error

Exception: System.Xml.XmlException: 'Element' is an invalid node type

is there anyway to avoid this?


Aaron said:
I need to make a script that reads the info inside a specific tag.

for example the xml file looks like this

<book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>

and say i seleted the <first-name> tag I want the output to be
Herman

THe closest example i could find is this, but it reads everything in
the xml. i want to read only the tags i choose.
http://samples.gotdotnet.com/quickstart/howto/doc/Xml/ReadXMLFile.aspx

You can use XmlTextReader to do this. Something like (c# code, but
it
could be any .Net language)

XmlReader reader = new XmlTextReader( filename );
while ( reader.Read() )
{
if ( reader.NodeType == XmlNodeType.Element )
{
string val;
switch ( reader.Name )
{
case "first-name":
val = reader.ReadElementString();
// do something
break;
case "last-name":
val = reader.ReadElementString();
// do something
break;
default: break;
}
}
}

-derek
 
M

MS News \(MS ILM\)

Dim objXMLDocument As New XmlDocument()

objXMLDocument.Load(filename)

objXMLDocument.GetElementsByTagName("genre")

process that tag

or use recursion to go through all your XML document
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,743
Messages
2,569,478
Members
44,898
Latest member
BlairH7607

Latest Threads

Top