Autor Beitrag
Chiyoko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 298
Erhaltene Danke: 8

Win 98, Win Xp, Win 10
C# / C (VS 2019)
BeitragVerfasst: So 29.05.11 02:01 
Huhu,

ich bekomm es nicht hin, eine XML Datei aus der Resource zu laden.

ausblenden 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");

            // weiterer Code...

            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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4799
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 298
Erhaltene Danke: 8

Win 98, Win Xp, Win 10
C# / C (VS 2019)
BeitragVerfasst: So 29.05.11 10:59 
Danke, ich kann es zwar Parsen aber finden tut er die Datei trotzdem nicht.

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19322
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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:
ausblenden C#-Quelltext
1:
   string xmlFile = rm.GetString("meineDateialsString");					
Du holst dir den Inhalt der Ressource.
ausblenden 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.
ausblenden 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:
ausblenden 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.

Für diesen Beitrag haben gedankt: Chiyoko
Chiyoko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 298
Erhaltene Danke: 8

Win 98, Win Xp, Win 10
C# / C (VS 2019)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 298
Erhaltene Danke: 8

Win 98, Win Xp, Win 10
C# / C (VS 2019)
BeitragVerfasst: Sa 04.06.11 18:12 
Problem auch gelöst:

ausblenden C#-Quelltext
1:
2:
XDocument doc = XDocument.Parse(Properties.Resources.Name);
            var index = doc.XPathSelectElements("//Daten");