Укажите путь к файлу XML в Android - PullRequest
2 голосов
/ 07 октября 2011

Я поместил моего employeedetailxml в папку с именем "res \ raw". Когда я пытаюсь открыть его, указав имя файла и папки, я получаю сообщение об ошибке «файл не найден».

Как мне указать путь к моему файлу?

Я бы предпочел иметь возможность передать R.raw.employeedetailxml FileInputStream, чтобы указать, что он открывает этот файл. Это возможно? (Я попробовал это, и получил ошибку.)

Может ли FileInputStream взять идентификатор ресурса в качестве параметра?

try{
   SAXParserFactory spf=SAXParserFactory.newInstance();
   SAXParser sp=spf.newSAXParser();
   XMLReader xr=sp.getXMLReader();

   EmployeeDetailHandler empDetailHandler=new EmployeeDetailHandler();
   xr.setContentHandler(empDetailHandler);

   xr.parse(new InputSource(new FileInputStream("\\res\\raw\\employeedetailxml.xml")));
}

Ответы [ 4 ]

8 голосов
/ 07 октября 2011

Да, вы можете использовать что-то похожее на прохождение R.raw.employeedetailxml. Вам просто нужно получить XML-файл ресурса, используя это имя ресурса, например:

InputStream ins = getResources().openRawResource(R.raw.file_name);
5 голосов
/ 07 октября 2011

Попробуйте это:

InputStream inputStream =
    getResources().openRawResource(R.raw.employeedetailxml);
4 голосов
/ 07 октября 2011

this.getResources().openRawResource() возвращает InputStream, что, вероятно, поможет вам разобрать xml.

1 голос
/ 06 марта 2014

Если размещение вашего XML-файла в ресурсах не повредит, вы можете попробовать это:

AssetManager manager = getAssets();
InputStream inputStream = manager.open("pathUnderAssets/filename.xml");    

Обратите внимание, что вызов getAssets () выполняется в контексте.Таким образом, вы должны вызывать его с контекстом в классах, который не является Activity.

...