String startdate, String enddate){
String startdate, String enddate, SVGDocument clone){
    private void process(String tagName, UserDataVO userdata,    		DNFieldExtractor dnfields, String[] pincodes, String[] pukcodes,    		String hardtokensn, String hardtokensnwithoutprefix,    		String copyoftokensn, String copyoftokensnwithoutprefix,    		String startdate, String enddate){    	Collection texts = new ArrayList();    	NodeList list = svgdoc.getDocumentElement().getElementsByTagName(tagName);	      	int numberofelements = list.getLength();	      	for(int i=0; i<numberofelements; i++){    		Node node = list.item(i);		      		if(node instanceof SVGTextElement){	    			NodeList list2 = ((SVGTextElement) node).getChildNodes();    			int numberofelements2 = list2.getLength();    			for(int j=0;j<numberofelements2;j++){		  	      				Node node2 = list2.item(j);			      				if(node2 instanceof GenericText)    					texts.add(node2);			        				if(node2 instanceof SVGOMTSpanElement){    					SVGOMTSpanElement tspan = (SVGOMTSpanElement) node2;    					NodeList list3 = tspan.getChildNodes();    					int numberofelements3 = list3.getLength();    					for(int k=0;k<numberofelements3;k++){    						Node node3 = list3.item(k);    						if(node3 instanceof GenericText)    							texts.add(node3);			        					}    				}		      			}    		}    	}  	  Iterator iter = texts.iterator();	  String data = "";	  while(iter.hasNext()){	  	GenericText text = (GenericText) iter.next(); 	  	data = text.getData();	  	data = processString(data, userdata, dnfields, pincodes, pukcodes,	  			hardtokensn, hardtokensnwithoutprefix,				copyoftokensn, copyoftokensnwithoutprefix,				startdate, enddate);			  	  	text.setData(data);	  }    }