Entwickler-Ecke
IO, XML und Registry - XML aus Resource laden
Chiyoko - So 29.05.11 02:01
Titel: XML aus Resource laden
Huhu,
ich bekomm es nicht hin, eine XML Datei aus der Resource zu laden.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| private void test() { Listview.Columns.Clear(); Listview.Items.Clear(); Listview.BeginUpdate();
Listview.Columns.Add("xxx", 150, HorizontalAlignment.Left); Listview.Columns.Add("yyy", 800, HorizontalAlignment.Left);
ResourceManager rm = new ResourceManager("MeinNamespace.Resources", Assembly.GetExecutingAssembly()); string xmlFile = rm.GetString("yxz");
XDocument doc = XDocument.Load(xmlFile); var doc_de = doc.XPathSelectElements("Xyz/Fach");
Listview.EndUpdate(); } |
Wie ich es auch drehe und wende, die Dtaei wird nicht gefunden, obwohl sie vorhanden ist.
Bisher hab ich meine XML Daten extern geladen, das funktioniert einwandfrei, aber nicht in meinem Sinne.
Bei GetString gab ich u.a. auch den Assambly namen ein oder andere Variationen.
Der Namespace stimmt(ich hab das hier nur verdeutlicht hingeschrieben im Code)
(Zugriff auf Bilder funktioniert einfacher über global::Properties, dass geht mit XML nicht, nur über Strings).
Was mache ich falsch?Bzw was koennte ich ausbessern?Danke.
Th69 - So 29.05.11 08:01
Hallo,
s. den Hinweis bei XDocument.Load:
MSDN hat folgendes geschrieben: |
Um ein XDocument aus einer Zeichenfolge zu erstellen, die XML enthält, verwenden Sie Parse.
|
Du hast ja in der Variablen 'xmlFile' den XML-String, nicht einen Dateipfad.
Chiyoko - So 29.05.11 10:59
Danke, ich kann es zwar Parsen aber finden tut er die Datei trotzdem nicht.
C#-Quelltext
1: 2: 3: 4: 5:
| ResourceManager rm = new ResourceManager("Projectname", Assembly.GetExecutingAssembly()); string xmlFile = rm.GetString("meineDateialsString");
XDocument doc1 = XDocument.Parse(xmlFile); XDocument doc = XDocument.Load(doc1.ToString()); |
Es wird ja immer in > Projectname.resources < gesucht, laut exception.
jaenicke - So 29.05.11 11:10
Wie jetzt? Du packst den Namen der Datei in die Ressource und nicht den Inhalt oder wie soll ich deinen Quelltext deuten? :nut:
C#-Quelltext
1:
| string xmlFile = rm.GetString("meineDateialsString"); |
Du holst dir den Inhalt der Ressource.
C#-Quelltext
1:
| XDocument doc1 = XDocument.Parse(xmlFile); |
Jetzt lässt du diesen Text als XML-Dokument laden, das heißt es sollten eigentlich XML-Tags in dem String xmlFile dringewesen sein.
C#-Quelltext
1:
| XDocument doc = XDocument.Load(doc1.ToString()); |
Jetzt nimmst du stattdessen aber den String aus dem Dokument wieder heraus (inkl. aller XML-Tags) und versuchst das als Dateinamen für ein weiteres XML-Dokument zu nehmen? Jetzt verstehe ich nicht was du willst... :nixweiss:
Ich hatte das so verstanden, dass in der Ressource sowas drin ist:
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9:
| <?xml version="1.0"?> <Settings> <Captions> <GroupNames>3</GroupNames> <PeriodShellCaptions>1</PeriodShellCaptions> </Captions> <Elementdisplay> ... </Settings> |
Das hättest du dann ja schon in doc1 geladen. Dann verstehe ich nicht was du mit dem zweiten Dokument willst.
Chiyoko - So 29.05.11 11:35
Ach, dann brauche ich das gar nicht zu laden?...
Ich hab die Resourcen nie verwendet.
Nein, wenn ich die XML Datei habe und sie per drag and drop in die resource schiebe, wird eine Textdatei angelegt und genau die will ich laden.
Da stellt sich die Frage, wie sie zu laden ist und ob man sie ueberhaupt laden muss.
Bin kunfuser wie du:D
Aber ich glaube, dass ich es gleich ohne "load" probiere, dann versteh ich das ganze auch.Mal schauen.
Chiyoko - Sa 04.06.11 18:12
Problem auch gelöst:
C#-Quelltext
1: 2:
| XDocument doc = XDocument.Parse(Properties.Resources.Name); var index = doc.XPathSelectElements("//Daten"); |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!