title: Android doesn't accept arabic xml and crash down
body: <p>I just started working with android.
  The problem is that XML parser doesn't process Arabic language when I use English it works great.
  As you can see I have utf-8 encoding in the XML file ,the app will crash if I process Arabic language.
  My xml file:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;menu&gt;&lt;soura&gt;&lt;souraId&gt;1&lt;/souraId&gt; &lt;souraName&gt;سورة الفاتحة&lt;/souraName&gt;&lt;/soura&gt;&lt;/menu&gt;
  </code></pre>
  
  <p>xml prarser code :</p>
  
  <pre><code>public class XMLParser {
  
  // constructor
  public XMLParser() {
  
  }
  
  /**
   * Getting XML from URL making HTTP request
   * @param url string
   * */
  public String getXmlFromUrl(String url) {
      String xml = null;
  
      try {
          // defaultHttpClient
          DefaultHttpClient httpClient = new DefaultHttpClient();
          HttpPost httpPost = new HttpPost(url);
  
          HttpResponse httpResponse = httpClient.execute(httpPost);
          HttpEntity httpEntity = httpResponse.getEntity();
          xml = EntityUtils.toString(httpEntity);
  
      } catch (UnsupportedEncodingException e) {
          e.printStackTrace();
      } catch (ClientProtocolException e) {
          e.printStackTrace();
      } catch (IOException e) {
          e.printStackTrace();
      }
      // return XML
      return xml;
  }
  
  /**
   * Getting XML DOM element
   * @param XML string
   * */
  public Document getDomElement(String xml){
      Document doc = null;
      DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
      try {
  
          DocumentBuilder db = dbf.newDocumentBuilder();
  
          InputSource is = new InputSource();
              is.setCharacterStream(new StringReader(xml));
              doc = db.parse(is); 
  
          } catch (ParserConfigurationException e) {
              Log.e("Error: ", e.getMessage());
              return null;
          } catch (SAXException e) {
              Log.e("Error: ", e.getMessage());
              return null;
          } catch (IOException e) {
              Log.e("Error: ", e.getMessage());
              return null;
          }
  
          return doc;
  }
  
  /** Getting node value
    * @param elem element
    */
   public final String getElementValue( Node elem ) {
       Node child;
       if( elem != null){
           if (elem.hasChildNodes()){
               for( child = elem.getFirstChild(); child != null; child = child.getNextSibling() ){
                   if( child.getNodeType() == Node.TEXT_NODE  ){
                       return child.getNodeValue();
                   }
               }
           }
       }
       return "";
   }
  
   /**
    * Getting node value
    * @param Element node
    * @param key string
    * */
   public String getValue(Element item, String str) {     
          NodeList n = item.getElementsByTagName(str);        
          return this.getElementValue(n.item(0));
      }
       }
  </code></pre>