mohamad000

از کدام پارسر برای تجزیه rss فارسی استفاده کنم؟

3 ارسال در این موضوع قرار دارد

سلام دوستان

می خوام یک برنامه خبر خوان بنویسم وبرای تجزیه فایل xml  از sax parser استفاده کنم .اما یه جایی خوندم که این پارسر فقط  متن های انگلیسی رو پشتیبانی می کنه .این مطلب درسته یا نه ؟

و به نظر شما کدام پارسر برای تجزیه متن های فارسی از نظر سرعت و کارایی بهتر استdom,saxیا pull parser

و اگه می شه یه sample در مورد نحوه این پارسر بزارید ...ممنون

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

نه میشه utf-8 رو به آن هم اضافه کرد و به راحتی فارسی را نیز ساپورت کند.

این کلاس رو ویرایش کردم تا بتونید از utf-8 نیر استفاده کنید

[shcode=java]

import java.io.ByteArrayInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.StringReader;

import java.io.UnsupportedEncodingException;

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.ClientProtocolException;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.entity.StringEntity;

import org.apache.http.impl.client.DefaultHttpClient;

import org.apache.http.protocol.HTTP;

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;

import android.util.Log;

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);

            httpPost.setHeader("Content-Type", "text/plain; charset=utf-8");

            httpPost.setHeader("Expect", "100-continue");

            httpPost.setEntity(new StringEntity(url, HTTP.UTF_8));

            httpPost.getHeaders("UTF-8");

           

            HttpResponse httpResponse = httpClient.execute(httpPost);

            httpResponse.setHeader("Content-Type","UTF-8");

            HttpEntity httpEntity = httpResponse.getEntity();

            xml = EntityUtils.toString(httpEntity, HTTP.UTF_8);

        } 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();

            InputStream inputStream=new ByteArrayInputStream(xml.getBytes("UTF-8"));

            InputStreamReader inputReader = new InputStreamReader(inputStream,"UTF-8");

            InputSource is = new InputSource();

                is.setCharacterStream(inputReader);

            //    is.setEncoding("utf-8");

                is.setEncoding("UTF-8");

                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));

        }

}

[/shcode]

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام دوستان.

من میخوام یک برنامه ضدسرقت ادبی بنویسم.به این ترتیب که جمله روبگیره و نقش کلمات جملات رو مشخص کنه.آیا پارسری هست که بتونم توی پروژم استفاده کنم.

ممنونمیشم جواب بدین.

خیلی حیاتیه واسم.

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری