Разбор HTML-файла в строку из файлового менеджера моего телефона - PullRequest
0 голосов
/ 27 ноября 2018

Я работаю над мобильным приложением, которое позволяет пользователю импортировать html-файл и сохранять его в моей базе данных. Теперь я застрял в том, как разобрать html-файл в строку после импорта из моего файлового менеджера.Я использовал средство выбора файлов, и теперь я могу выбрать html из файлов моего телефона.
Как мне разобрать этот html в строку?
Я действительно нашел некоторые ответы, но все они мне не помогли. В этом коде я выбираю файл из моего файлового менеджера.Я нахожу некоторые ответы в Интернете, и я применил их в своих кодах, но все же это не позволяет мне отображать проанализированный файл в моем .xml.Я думаю, что я не использовал выбранный файл правильно.Пожалуйста, помогите мне, ребята.

   private ProgressDialog mProgressDialog;
private ArrayList <String> sNameList=new ArrayList <>(  );
private ArrayList <String> sIdList=new ArrayList <>(  );
private ArrayList <String> sCourseList = new ArrayList <>(  );
Button btnImport;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate( savedInstanceState );
    setContentView( R.layout.activity_subject_class_list );

    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M && checkSelfPermission( Manifest.permission.WRITE_EXTERNAL_STORAGE )
            != PackageManager.PERMISSION_GRANTED)
    {
        requestPermissions( new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1001);
    }

    Toolbar myToolbar =  findViewById( R.id.toolbarAct );
    setSupportActionBar( myToolbar );

    if (getSupportActionBar()!= null )
    {

        ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled( true );
    }

    getSupportActionBar().setTitle( "[CLASS NAME]" );

    btnImport = findViewById( R.id.btn_import );

    btnImport.setOnClickListener( new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            new MaterialFilePicker()
                    .withActivity(subject_class_list.this)
                    .withRequestCode(1000)
                    .withHiddenFiles(true) // Show hidden files and folders
                    .start();
        }
    } );
}

//public void onBackPressed(){
//    moveTaskToBack( true );
//    super.onBackPressed();
//}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult( requestCode, resultCode, data );

    if (requestCode == 1000 && resultCode == RESULT_OK) {
        String filePath = data.getStringExtra( FilePickerActivity.RESULT_FILE_PATH );
        // Do anything with file

    doInBackground( filePath );

    }
}

protected Void doInBackground(String params)
{
    Document mfile = (Document) Jsoup.parse( params );
    Elements mElementsDataSize = (Elements) mfile.getElementsByTagName( "table[border=0 cellspacing=2]");

    int mElementSize = mElementsDataSize.size();
    for (int i = 0; i < mElementSize; i++)
    {
        Elements sNameLoadList = (Elements) mfile.getElementsByTagName( "a[title=Click here to view the student schedule]" );
        String StudentName = sNameLoadList.text();

       // Elements sIdList = (Elements) mfile.getElementsByTagName(  );
        //String StudentID = sIdList.text();

        //Elements sCourseList = (Elements) mfile.getElementsByTagName(  );
      //  String StudentCourse = sCourseList.text();

       sNameList.add( StudentName );
    }

    return null;
}

protected void onPostExecute(Void result)
{
    RecyclerView mRecyclerView = (RecyclerView)findViewById( R.id.act_recycleview );
    DataAdapter mDataAdapter = new DataAdapter( subject_class_list.this , sNameList );
    RecyclerView.LayoutManager mLayoutManager =new LinearLayoutManager( getApplicationContext() );
    mRecyclerView.setLayoutManager( mLayoutManager );
    mRecyclerView.setAdapter( mDataAdapter );
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    switch (requestCode)
    {
        case 1001:
        {
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED)
            {
                Toast.makeText( this, "Permission granted.", Toast.LENGTH_SHORT ).show();
            }
            else
            {
                Toast.makeText( this, "Permission not granted.", Toast.LENGTH_SHORT ).show();
            }
        }
    }
}

1 Ответ

0 голосов
/ 27 ноября 2018

Используя библиотеку jsoup, вы можете легко анализировать содержимое файла HTML, вот ссылка, которая вам поможет https://medium.com/@ssaurel/learn-to-parse-html-pages-on-android-with-jsoup-2a9b0da0096f

...