我想使用意圖在我的應用程序中選擇一個XML文件,然後動態解析它。我知道解析和顯示過程,但我的主要問題是輸入流。請注意,選擇XML應該動態完成,而不是資產。任何人都可以幫助我嗎?如何使用意圖選擇一個XML文件並動態解析它
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==PICKFIlE_RESULT_CODE) {
if (resultCode == RESULT_OK) {
File file = null;
String filepath = data.getData().getPath();
file = new File(filepath);
String v = file.getAbsolutePath();
try
{
InputStream is = new FileInputStream(v);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
Element element = doc.getDocumentElement();
element.normalize();
NodeList nList = doc.getElementsByTagName("user");
for(int i=0;i<nList.getLength();i++)
{
Node node = nList.item(i);
if(node.getNodeType()==Node.ELEMENT_NODE)
{
Element element2 = (Element)node;
textView.setText(textView.getText()+"\nName : "+getValue("name",element2)+"\n");
textView.setText(textView.getText()+"\nSurname : "+getValue("surname",element2)+"\n");
textView.setText(textView.getText()+"\nSalary : "+getValue("salary",element2)+"\n");
}
}
}
catch (Exception e)
{
}
public void onClick(View v) {
final static private int PICKFILE_RESULT_CODE =10;
try {
Intent intent = new Intent();
intent.setType("file/*");
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE,true);
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, PICKFIlE_RESULT_CODE);
}
catch (Exception e)
{
Toast.makeText(getApplicationContext(),"No file found",Toast.LENGTH_LONG).show();
}
}
請告訴你如何使用'startActivityForResult()'和'PICKFIlE_RESULT_CODE'來觸發這個'onActivityResult()'。請注意,'Uri'不是一個文件,因此'getPath()'經常是無用的。 – CommonsWare
Tnx您的關注。我附上了你想要的代碼,並且請注意,pickfile_result_code已經在這個活動中被全局定義,但是我粘貼在這裏以便你可以輕鬆地看到。 –