Skip to content

Instantly share code, notes, and snippets.

@Rogach
Created April 19, 2012 15:24
Show Gist options
  • Save Rogach/2421670 to your computer and use it in GitHub Desktop.
Save Rogach/2421670 to your computer and use it in GitHub Desktop.
s
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
object ReadXMLFile {
def main(argv: Array[String]) {
try {
val factory = SAXParserFactory.newInstance
val saxParser = factory.newSAXParser
val handler = new DefaultHandler() {
var bfname = false
var blname = false
var bnname = false
var bsalary = false
override def startElement(uri: String, localName: String, qName: String, attributes: Attributes) {
println("Start Element :" + qName)
if (qName.equalsIgnoreCase("FIRSTNAME")) {
bfname = true
}
if (qName.equalsIgnoreCase("LASTNAME")) {
blname = true
}
if (qName.equalsIgnoreCase("NICKNAME")) {
bnname = true
}
if (qName.equalsIgnoreCase("SALARY")) {
bsalary = true
}
}
override def endElement(uri: String, localName: String, qName: String) {
println("End Element :" + qName)
}
override def characters(ch: Array[Char], start: Int, length: Int) {
if (bfname) {
println("First Name : " + new String(ch, start, length))
bfname = false
}
if (blname) {
println("Last Name : " + new String(ch, start, length))
blname = false
}
if (bnname) {
println("Nick Name : " + new String(ch, start, length))
bnname = false
}
if (bsalary) {
println("Salary : " + new String(ch, start, length))
bsalary = false
}
}
};
saxParser.parse("c:\\file.xml", handler);
} catch { case e:Exception =>
e.printStackTrace();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment