public List<XMLNode> toXMLNodeList(String attrKey, String textKey) throws JSONException{
		List<XMLNode> xnodeList=new ArrayList<XMLNode>();
		for (String key: this.keyList)
		{
			XMLNode node = new XMLNode();
			node.setNodeName(key);
			String className = jsonObjectItems.get(key).getClass().getCanonicalName();
			if (className == "com.jsonutils.xjson.JSONObject")
			{
				JSONObject tempJSONObject = this.getJSONObject(key);
				for (String externalKey : tempJSONObject.keyList)
				{
					if (externalKey.equals(attrKey))
					{
						JSONObject tempJSONObject2 = tempJSONObject.getJSONObject(externalKey);
						for (String internalKey : tempJSONObject2.keyList )
						{
							node.addAttribute(internalKey, tempJSONObject2.getString(internalKey));
						}
	
					}
					else if (externalKey.equals(textKey))
					{
						node.setTextValue(tempJSONObject.getString(externalKey));
					}
					else
					{   
						XMLNode xnode = new XMLNode();
					    xnode.setNodeName(externalKey);
					    String className1 = tempJSONObject.jsonObjectItems.get(externalKey).getClass().getCanonicalName();
					    if (className1 == "com.jsonutils.xjson.JSONObject")
					    {
					    	xnode.setTextValue(tempJSONObject.getJSONObject(externalKey).toXML(attrKey, textKey));
					    }
					    else if (className1 == "com.jsonutils.xjson.JSONArray")
					    {
					    	xnode.setTextValue(tempJSONObject.getJSONArray(externalKey).toXML(attrKey, textKey));
					    }
					    else
					    	xnode.setTextValue(tempJSONObject.getString(externalKey));
					    node.addChild(xnode);
					}
					
				}
				
			
			}
			else if (className == "com.jsonutils.xjson.JSONArray")
			{
				JSONArray ja = this.getJSONArray(key);
				List<XMLNode> nodeList= ja.toXMLNodeList(attrKey, textKey);
				node.addChildList(nodeList);
			}
			else
			{
				node.setTextValue(this.getString(key));
			}
			
			xnodeList.add(node);
			
		}
		return xnodeList;
	}