SAX Parsing - Weird results when parsing content between tags.

Naren (archive)

Usenet Archive
Joined
Jul 26, 2001
Messages
53
Reaction score
0
I have an XML like the one below.

I am using SAX parsing and I need to get the information between the tags of the Email element. First i try to access the content and print it out and it gives me weird results.

XML:
/www.xmlspy.com) by AB(Co) --><!--Sample XML file generated by XML Spy v4.0.1 U (http://www.xmlspy.com)--> <RoomResRQ xmlns:commonelements="http://*.com/schema/CommonElements" xmlns:jxb="http://java.sun.com/xml/ns/jaxb" Action="CreateNew">

<RoomResSpecs>
<RoomResSpec>
<RoomResParty>
<PartyMixInfo>
<Email>

</Email>
</PartyMixInfo>
</RoomResParty>
</RoomResSpec>
</RoomResSpecs>
</RoomResRQ>

The RESULT of running my parser on this is:

/www.xmlspy.com) by AB(Co) --><!--Sample XML file generated by XML Spy v4.0.1 U (http://www.xmlspy.com)--> <RoomResRQ xmlns:commonelements="http://*.com/schema/CommonElements" xmlns:jxb="http://java.sun.com/xml/ns/jaxb" Action="CreateNew">

<RoomResSpecs>
<RoomResSpec>
<RoomResParty>
<PartyMixInfo>
<Email>

I expect only the email address to be output, but everything else before the address is also printed. I appreciate if anyone can help.

In startelement, I have the following condition for email. if (localName.equals(Email) { readyForContent = true; }

In the characters method, I read the content only when the readyForContent flag is true. In the endElement method, I first set the readyForContent flag to true. So, The content is read only when the flag is true and it happens only when the startElement is Email.

public void characters(char ch, int start, int length)
throws SAXException {

if (readyForContent)
{
emailBuf = new StringBuffer;
emailBuf.append(ch, start, length);
System.out.println(emailBuf);

}
}

public void endElement(String namespaceURI, String localName, String qName) throws SAXException { readyForContent = false; //clean the stack if (!tagStack.isEmpty){ tagStack.pop; } }
 

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
548,042
Messages
3,104,223
Members
248,131
Latest member
Tonypshaw1

Latest Threads

Top