Hi All,
Following is my xml read and display code:
package com.mycompany.xmlread;
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;
public class App
{
public static void main(
String[] args )
{
try {
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
DefaultHandler handler = new DefaultHandler() {
boolean jname = false;
boolean con = false;
boolean driverName = false;
boolean username = false;
boolean password = false;
@Override
public void startElement(String uri, String localName,String qName,
Attributes attributes) throws SAXException {
//System.out.println("Start Element :" + qName);
if (qName.equalsIgnoreCase("jndi-name")) {
jname = true;
}
if (qName.equalsIgnoreCase("connection-url")) {
con = true;
}
if (qName.equalsIgnoreCase("driver-class")) {
driverName = true;
}
if (qName.equalsIgnoreCase("user-name")) {
username = true;
}
if (qName.equalsIgnoreCase("password")) {
password = true;
}
}
@Override
public void endElement(String uri, String localName,
String qName) throws SAXException {
//System.out.println("End Element :" + qName);
}
@Override
public void characters(char ch[], int start, int length) throws SAXException {
String str=new String(ch, start, length);
if(str.equals("abc")){
/*
Made all boolean values false;
*/
}
if (jname) {
System.out.println("JNDI Name : " +str );
jname = false;
}
if (con) {
System.out.println("Connection URL : " +str);
con = false;
}
if (driverName) {
System.out.println("Driver Name : " +str);
driverName = false;
}
if (username) {
System.out.println("Username : " + str);
username = false;
}
if (password) {
System.out.println("Password : " +str);
password = false;
}
}
};
saxParser.parse("D:\\test.xml", handler);
} catch (Exception e) {
e.printStackTrace();
}
}
}
XML file:
<?xml version='1.0' encoding='us-ascii'?>
<datasources>
<local-tx-datasource>
<jndi-name>abc</jndi-name>
<connection-url>
jdbc:mysql://localhost:3306/jboss</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>abc1</user-name>
<password>1234</password>
</local-tx-datasource>
<local-tx-datasource>
<jndi-name>xyz</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/jboss</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>xyz1</user-name>
<password>jan2010</password>
</local-tx-datasource>
</datasources>
I need to display only those values which comes under tag name : <jndi-name>xyz<jndi-name>
But still it prints all the values of xml file.So please help me out how can i put the check.
Thank In Advance,
Karthik G.