从xml文件读取特定字符串c#

时间:2017-06-27 12:52:39

标签: c# xml linq-to-xml

您好我需要从我的xml文件中提取一个特定的字符串。我怎么能这样做?我搜索过互联网,但无法找到足够让我理解的答案。 ^^

我想使用相应的GameName

获取我的SavePath字符串

继承我的xml文件

<?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>

以及我尝试使用的代码

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();

1 个答案:

答案 0 :(得分:1)

你快到了。只需摆脱 ToString(),这样它就会返回 XElement 的集合(当然只有一个),然后你可以这样得到它:

& #xA;&#xA;
  var result = str.Elements(“entry”)。&#xA; Where(x =&gt; x.Element(“GameName”)。Value.Equals(search))。Descendants(“SavePath”);&#xA;&#xA; string value = result.First()。Value;& #xA;  
&#XA;