2017-06-27 10 views
1

Hi ich muss eine bestimmte Zeichenfolge aus meiner XML-Datei extrahieren. Wie kann ich darüber gehen? Ich habe das Internet durchsucht, kann aber keine spezifische Antwort finden, die ich verstehen kann. ^^Eine bestimmte Zeichenfolge aus einer XML-Datei lesen C#

Ich mag meine savePath Zeichenfolge erhalten mit dem entsprechenden Gamenamen

heren meine XML-Datei

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<Game> 
    <entry> 
    <GameName>test</GameName> 
    <SavePath>C:\Users\allen\Downloads\GameOfLife\GameOfLife\obj\Debug\CoreCompileInputs.cache</SavePath> 
    <ExePath>C:\Users\allen\Downloads\GameOfLife\GameOfLife\obj\Debug\GameOfLife.exe</ExePath> 
    </entry> 
    <entry> 
    <GameName>test2</GameName> 
    <SavePath>C:\Users\allen\Downloads\GameOfLife\GameOfLife\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs</SavePath> 
    <ExePath>C:\Users\allen\Downloads\AdobeAIRInstaller.exe</ExePath> 
    </entry> 
</Game> 

und hier ist der Code, den ich

var xmlStr = File.ReadAllText(Properties.Resources.docname); 
var str = XElement.Parse(xmlStr); 
var result = str.Elements("entry") 
    .Where(x => x.Element("GameName").Value.Equals(SelectGame_Combobox.Text)) 
    .Descendants("SavePath") 
    .ToString(); 
+2

Was passiert, wenn Sie Ihre vorhandenen Code ausführen? – mjwills

+0

Warum können Sie es nicht zu einem Objekt serialisieren? – Krishna

+0

Kompiliert der obige Code auch? weil wo eine IEnumerable-Sammlung zurückgibt, die keine Nachkommen haben – Krishna

Antwort

1

zu verwenden, habe versucht, Du bist fast am Ziel. Nehmen Sie einfach los ToString() so gibt es eine Sammlung von XElement (nur eine, natürlich), und dann können Sie es wie folgt erhalten:

var result = str.Elements("entry"). 
    Where(x => x.Element("GameName").Value.Equals(search)).Descendants("SavePath"); 

string value = result.First().Value; 
+0

arbeitete ein Leckerbissen, danke :) – Samuel

Verwandte Themen