2016-04-20 2 views
0
<?xml version='1.0' encoding='ISO-8859-1' standalone='yes'?> 
<Collection> 
<Book Id='1' ISBN='1-100000ABC-200'> 
<Title>Principle of Relativity</Title> 
</Book> 
</Collection> 

Datei Jedes Mal, wenn ich möchte, dass meine aktualisierte XML-Datei im App Verzeichnis speichern, die /data/data/App17.App17/files ist eine Ausnahme auftritt, dieConversion Pufferüberlauf, wenn aktualisierte XML-Speicher

System.ArgumentException ist: Umwandlung Pufferüberlauf.

Warum tritt diese Ausnahme auf und wie kann ich sie lösen?

using System; 
using Android.App; 
using Android.Content; 
using Android.Runtime; 
using Android.Views; 
using Android.Widget; 
using Android.OS; 
using System.IO; 
using System.Reflection; 
using Android.Content.Res; 
using System.Xml; 
using System.Xml.Linq; 
using System.Xml.XPath; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
namespace App17 
{ 
[Activity(Label = "App17", MainLauncher = true, Icon = "@drawable/icon")] 
public class MainActivity : Activity 
{ 
    int count = 1; 

    protected override void OnCreate(Bundle bundle) 
    { 
     base.OnCreate(bundle); 


     SetContentView(Resource.Layout.Main); 
     var xml = XDocument.Load(Assets.Open("Q317664.xml")); 
     var node = xml.Descendants("Book").FirstOrDefault(cd => cd.Attribute("Id").Value == "1"); 
     node.SetAttributeValue("ISBN", "new"); 

     string dir = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); 
     string path = Path.Combine(dir, "Q317664.xml"); 

     xml.Save(path); 
+0

Bitte geben Sie uns die StackTrace –

Antwort

0

Das Problem ist, dass die Datei nicht in UTF-8 codiert ist. Ich nehme an, Sie haben es mit Visual Studio > New File erstellt. Dies erstellt eine Datei mit einer Windows-Codepage oder einer anderen Codierung.

Öffnen Sie die Datei in VS und speichern Sie sie über File > Advanced Save Options und wählen Sie dann Unicode - Codepage 1200.

enter image description here

Nachdem Sie dies getan haben, sollten Sie Ihren Code gut laufen.

+0

Stube Jetzt möchte ich diese aktualisierte Xml-Datei in meinem Asset-Ordner hinzufügen Wenn die Anwendung läuft, aber die alte auch bleiben bitte helfen Sie mir. –

+0

Sie haben bereits gefragt: http://stackoverflow.com/questions/36677276/unable-to-save-the-changes-in-xml-file –

+0

Stube jetzt möchte ich diese XML-Datei von App-Verzeichnis zu Asset-Ordner hinzufügen behält jedoch die alte XML-Datei, die bereits im Asset-Ordner –