How to get value of xml tags from a File

Hi Friends,

Sometime back I cam across situation where I had a very big file(it was log file actually) having multiple xml requests on multiple lines,so that means one xml request per line and I wanted to get values from one particular tag from each request.So I wrote program mentioned in below post,which gave me FileNames from each request.

Let us see now how we can get value of  xml tags from a big file.

Prerequisite :
IDE : Eclipse or any other IDE for java development.
JDK : I used JDK6
commons-lang.jar(I have used commons-lang-2.6.jar)

Step 1 : Create a new java project in eclipse































Step 2 : Create package with name

























Step 3 : Create Class TestTagValue


























Step 4 : Remove the above code and paste following code :


package com.gb.action;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;

import org.apache.commons.lang.StringUtils;



public class TestTagValue {

public static void main(String args[]) {
// Open the file
FileInputStream fstream = null;
try {
fstream = new FileInputStream(
"C:/Users/testTagValue/abc.xml");
BufferedReader br = new BufferedReader(new InputStreamReader(
fstream));
String strLine;

// Read File Line By Line
while ((strLine = br.readLine()) != null) {
String fileName = StringUtils.substringBetween(strLine,
"<FileName>", "</FileName>");
// Print the content on the console
System.out.println(fileName);
}
br.close();
} catch (FileNotFoundException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();

} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

}
}



Step 5 : You will following compilation errors :

























Step 6 : Add commons-lang jar on build path and errors will be gone



























Step 7 : Place  your abc.xml file at C:/Users/testTagValue or your preferred location(but same path you need to mention in the program above)

Sample Content of abc.xml :

<FileName>def.xml</FileName><DateTimeFile>20141126002523</DateTimeFile><DateTimeMessage>20141126002523</DateTimeMessage><MessageID>006743663</MessageID>
<FileName>ghi.xml</FileName><DateTimeFile>20141126011537</DateTimeFile><DateTimeMessage>20141126011537</DateTimeMessage><MessageID>006757690</MessageID>
<FileName>jkl.xml</FileName><DateTimeFile>20141126011535</DateTimeFile><DateTimeMessage>20141126011535</DateTimeMessage><MessageID>006757686</MessageID>
<FileName>mno.xml</FileName><DateTimeFile>20141126011538</DateTimeFile><DateTimeMessage>20141126011538</DateTimeMessage><MessageID>006757700</MessageID>


Step 8: Right click anywhere on the class and select Run As -> Java Application.
It will give you content of tags <FileName> in console.

Output :

def.xml
ghi.xml
jkl.xml
mno.xml

Note : If you want to have content of some other tag ,you just need to change the tag name in above program.

Any feedback ,suggestions ,questions on the post are welcome.