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; } }
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; } }