0

アプリケーションが動作しています。XML ファイルとディレクトリが存在しない場合は、SDCard に作成する必要があります。

このコードを使用して、Assets から XML ファイルを取得します

public  Document abrirArchivo()
{       
    Document internalDom = null;
    //Cargo el archivo xml en una variable Document
    try
    {                   
    AssetManager assManager = context.getAssets();

    DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();    
    internalDom = dBuilder.parse(assManager.open("gastos.xml"));
    }
    catch (Exception e) {
        e.printStackTrace();
        }
    return internalDom;
}

そして、このドキュメントを SdCard のファイルに保存します

public void crearArchivo(){

            String pathDirectorio=android.os.Environment.getExternalStorageDirectory().toString()+"/AdministradorGastos/";
            File directorio= new File(pathDirectorio);
            File archivoExiste= new File(path);
            directorio.mkdirs();
            if(!archivoExiste.exists())
            {   
                Document dom= abrirArchivo();
                try
                {
                    Transformer transformer = TransformerFactory.newInstance().newTransformer();
                    transformer.setOutputProperty(OutputKeys.INDENT, "yes");
                    StreamResult streamResult = new StreamResult(new File(pathDirectorio+"gastos.xml"));
                    DOMSource source = new DOMSource(dom);
                    transformer.transform(source, streamResult);                   
                }
                catch (Exception e) {
                    e.printStackTrace();
                }
            }

        }

問題は、SDCard に空の xml ファイルを取得しているのに、Assets の XML ファイルが次のようになっていることです。

<?xml version="1.0"?>
<gastos>   
    <gasto>
        <descripcion>Default</descripcion>
        <monto>0</monto> 
        <fecha>01/01/1900</fecha>
    </gasto>
</gastos>
4

2 に答える 2

1

AndroidManifest ファイルで必要な権限を確認します。

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

これを application タグ内に配置します。あなたのコードには他に何も問題はありません。

于 2013-04-30T04:37:04.690 に答える