Я работаю над мобильным приложением, которое позволяет пользователю импортировать 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();
}
}
}
}