0

私はAndroidが初めてで、ローカルのXMLファイルを取得してデータを取得して表示しようとしています。

これが私のコードです:

public String GetXmlData()
{
    DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = null;
    try
    {
        builder = builderFactory.newDocumentBuilder();
        InputStream is = getAssets().open("words.xml");
        Document document = builder.parse(new FileInputStream("C:\\Users\\Ocean\\AndroidStudioProjects\\Deneme1Project\\Deneme1\\build\\res\\assets\\words.xml"));
        Element rootElement = document.getDocumentElement();

        NodeList nodes = rootElement.getChildNodes();

        for(int i=0; i<nodes.getLength(); i++){
            Node node = nodes.item(i);

            if(node instanceof Element)
            {
                //a child element to process
                Element child = (Element) node;
                title = child.getAttribute("title");
                String author= child.getAttribute("author");
                String year= child.getAttribute("year");
            }
        }
        return title;
    }
    catch (Exception e)
    {
        e.printStackTrace();
        return e.toString();
    }

}

最初の質問は、この XML ファイルをどこに置くべきですか? res 内にフォルダーを作成し、assets という名前を付け、その中に入れます rs フォルダーと r フォルダーがあります:S ファイルが見つかりません 例外 (ファイルはあります:P)

4

4 に答える 4

2

デフォルト プロジェクトには既に assets フォルダーがあるため、res フォルダーに assets という名前のフォルダーを作成する必要はありません。ファイルをデフォルトのアセットフォルダーに配置すると、次の方法で呼び出すことができます。

getAssets().open("words.xml");

別のカスタム フォルダを使用する場合:

getAssets().open("myfiles/words.xml");

于 2013-07-15T13:06:40.550 に答える
2

XML ファイルは、次のいずれかの場所に配置できます。

1) sdcard、そしてそれにアクセスする

File wordsXML = new File(Environment.getExternalStorageDirectory() + "/SomeFolderName/" + "words.xml");
FileInputStream fis = new FileInputStream(wordsXML);

注: アプリケーションをインストールした後でも、xml ファイルを編集できます。

2) res/rawフォルダ

FileInputStream fis =(FileInputStream) getResources.openRawResource(R.raw.words);

3) res/assetsフォルダー

InputStream is = (InputStream) getAssets().open("words.xml");
于 2013-07-15T13:12:30.670 に答える
1

これは、参照できない APK を展開するときに、ローカル コンピューターを指します。

Document document = builder.parse(new FileInputStream("C:\\Users\\Ocean\\AndroidStudioProjects\\Deneme1Project\\Deneme1\\build\\res\\assets\\words.xml"));

代わりに試してください:

getAssets().open("words.xml");

words.xml はアセット ディレクトリにあります。これは から機能しActivityます。または がある場合はContext、コンテキストで getAssets() を呼び出すことができますcontext.getAssets()

于 2013-07-15T13:02:45.927 に答える