469,631 Members | 1,732 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,631 developers. It's quick & easy.

XML reader error

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" <ku*****@yahoo.com> wrote in message
news:b4**************************@posting.google.c om...
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/quickst...adXMLFile.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
--
This posting is provided "AS IS" with no warranties, and confers no
rights.
Use of included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm.
Nov 17 '05 #1
1 1797
Dim objXMLDocument As New XmlDocument()

objXMLDocument.Load(filename)

objXMLDocument.GetElementsByTagName("genre")

process that tag

or use recursion to go through all your XML document

"Aaron" <ku*****@yahoo.com> wrote in message
news:b4**************************@posting.google.c om...
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" <ku*****@yahoo.com> wrote in message
news:b4**************************@posting.google.c om...
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/quickst...adXMLFile.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
--
This posting is provided "AS IS" with no warranties, and confers no
rights.
Use of included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm.

Nov 17 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by Stephen | last post: by
8 posts views Thread by Stephan | last post: by
2 posts views Thread by Aaron | last post: by
1 post views Thread by Craig Beuker | last post: by
8 posts views Thread by Todd Bright | last post: by
1 post views Thread by Stephen | last post: by
2 posts views Thread by Patrick Olurotimi Ige | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.