I want to show the Reginonal language(Gurumukhi) in my Android app

后端 未结 3 838
广开言路
广开言路 2020-12-20 20:46

I want the output as shown in below image

\"This

This is a Sikh holy book which

3条回答
  •  有刺的猬
    2020-12-20 21:47

    I have made some changes in xml keep in mind that changes are required.

    I have made an data.xml in asset folder the xml is as look like as shown below

        
        
        <> siq nwmu krqw purKu inrBau inrvYru
        Akwl mUriq AjUnI sYBM gur pRswid ]
                        ] jpu ]
                 Awid scu jugwid scu ]
          hY BI scu nwnk hosI BI scu ]1]
         socY soic n hoveI jy socI lK vwr ]
        cupY cup n hoveI jy lwie rhw ilv qwr ]
        BuiKAw BuK n auqrI jy bMnw purIAw Bwr ]
       shs isAwxpw lK hoih q iek n clY nwil ]
       ikv sicAwrw hoeIAY ikv kUVY qutY pwil ]
       hukim rjweI clxw nwnk iliKAw nwil ]1]
      hukmI hovin Awkwr hukmu n kihAw jweI ]
      hukmI hovin jIA hukim imlY vifAweI ]
      hukmI auqmu nIcu hukim iliK duK suK pweIAih ]
      ieknw hukmI bKsIs ieik hukmI sdw BvweIAih ]
      hukmY AMdir sBu ko bwhir hukm n koie ]
      nwnk hukmY jy buJY q haumY khY n koie ]2]
      gwvY ko qwxu hovY iksY qwxu ]
      
    

    after that see my StudyParser.class as shown below

      import java.io.BufferedInputStream;
      import java.io.ByteArrayOutputStream;
      import java.io.IOException;
      import java.io.InputStream;
      import java.io.InputStreamReader;
      import java.io.StringReader;
      import java.io.UnsupportedEncodingException;
      import java.net.MalformedURLException;
    
      import javax.xml.parsers.DocumentBuilder;
      import javax.xml.parsers.DocumentBuilderFactory;
      import javax.xml.parsers.ParserConfigurationException;
    
      import org.apache.http.HttpEntity;
      import org.apache.http.HttpResponse;
      import org.apache.http.client.methods.HttpPost;
      import org.apache.http.impl.client.DefaultHttpClient;
      import org.apache.http.util.EntityUtils;
      import org.w3c.dom.Document;
      import org.w3c.dom.Element;
      import org.w3c.dom.Node;
      import org.w3c.dom.NodeList;
      import org.xml.sax.InputSource;
      import org.xml.sax.SAXException;
    
    
    
      public class StudyParser {
    public StudyParser() {
    
    }
    
    public final static Document XMLfromString(String xml){
         Document doc = null;
    
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            dbf.setCoalescing(true);
                try {
    
              DocumentBuilder db = dbf.newDocumentBuilder();
    
              InputSource is = new InputSource();
                  is.setCharacterStream(new StringReader(xml));
                  doc = db.parse(is); 
    
            } catch (ParserConfigurationException e) {
              System.out.println("XML parse error: " + e.getMessage());
              return null;
            } catch (SAXException e) {
              System.out.println("Wrong XML file structure: " + e.getMessage());
                    return null;
            } catch (IOException e) {
              System.out.println("I/O exeption: " + e.getMessage());
              return null;
            }
    
                return doc;
    
      }
    public static String getXMLstring(String xml){   
          String line = null;
    
          try {
    
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(xml);
    
            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            line = EntityUtils.toString(httpEntity);
    
          } catch (UnsupportedEncodingException e) {
            line = "Can't connect to server";
          } catch (MalformedURLException e) {
            line = "Can't connect to server";
          } catch (IOException e) {
            line = "Can't connect to server";
          }
    
          return line;
    
      }
    public static String getXML(InputStream is)throws IOException {
    
        BufferedInputStream bis = new BufferedInputStream(is);
        ByteArrayOutputStream buf = new ByteArrayOutputStream();
        int result = bis.read();
        while(result != -1) {
          byte b = (byte)result;
          buf.write(b);
          result = bis.read();
        }        
        return buf.toString();
    }
    public final static String getElementValue( Node elem ) {
           Node kid;
           if( elem != null){
               if (elem.hasChildNodes()){
                   for( kid = elem.getFirstChild(); kid != null; kid = kid.getNextSibling() ){
                       if( kid.getNodeType() == Node.TEXT_NODE  ){
                           return kid.getNodeValue();
                       }
    
                   }
               }
           }
           return "";
       }
     public static int numResults(Document doc){    
            Node results = doc.getDocumentElement();
            int res = -1;
    
            try{
              res = Integer.valueOf(results.getAttributes().getNamedItem("Categories").getNodeValue());
            }catch(Exception e ){
              res = -1;
            }
    
            return res;
          }
    
          public static String getValue(Element item, String str) {    
            NodeList n = item.getElementsByTagName(str);    
            return StudyParser.getElementValue(n.item(0));
          }
    
    
    }
    

    after code in my activity is as shown below

     TextView txt;
     try{
     txt = (TextView)findViewById(R.id.tv); 
     String   xml= StudyParser.getXML(getAssets().open("data.xml"));    
    
       Document doc = StudyParser.XMLfromString(xml);
      NodeList n = doc.getElementsByTagName("book1");
     Element eid = (Element) n.item(0);
    String Js=StudyParser.getValue(eid, "page1");
     Typeface tf = Typeface.createFromAsset(getAssets(),"bulara_5.ttf");
     txt.setTypeface(tf);
     txt.setText(Js);
       }catch(Exception e){
     Log.e("error",e.toString());
       }
    

提交回复
热议问题