值我有一個包含以下行檢索xml文檔C#
<string name="accept">Accept</string>
<string name="action_settings">Settings</string>
<string name="app_name">Val</string>
我怎樣才能得到app_name
字符串,它是在C#Val
的值的XML文件。我試過XML解析器,但它不起作用。
值我有一個包含以下行檢索xml文檔C#
<string name="accept">Accept</string>
<string name="action_settings">Settings</string>
<string name="app_name">Val</string>
我怎樣才能得到app_name
字符串,它是在C#Val
的值的XML文件。我試過XML解析器,但它不起作用。
您可以在SelectSingleNode方法中使用XmlDocument和XPath語句來檢索此信息。下面是一個例子:
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
var accept = doc.SelectSingleNode("//string[@name='accept']").InnerText;
var actionSettings = doc.SelectSingleNode("//string[@name='action_settings']").InnerText;
var appName = doc.SelectSingleNode("//string[@name='app_name']").InnerText;
這裏被XPath語法的教程:https://www.w3schools.com/xml/xpath_syntax.asp
UPDATE:@喬恩 - 飛碟使用LINQ建議。如果您選擇這樣做,你的代碼可能看起來像:
var element = XElement.Parse(xml);
var accept = element.Descendants("string").Where(x => x.Attribute("name").Value == "accept").Select(x => x.Value).FirstOrDefault();
var actionSettings = element.Descendants("string").Where(x => x.Attribute("name").Value == "action_settings").Select(x => x.Value).FirstOrDefault();
var appName = element.Descendants("string").Where(x => x.Attribute("name").Value == "app_name").Select(x => x.Value).FirstOrDefault();
我會*強烈*鼓勵使用LINQ到XML而不是XmlDocument,並且只有在真正需要時才使用XPath - 我在這裏看到沒有任何好處。結果是繁瑣而易出錯的代碼。 –
@JonSkeet LINQ也可以正常工作,我已經更新了包含該方法的代碼示例的響應。 –
你試試這個:https://stackoverflow.com/questions/642293/how-do-i-read-and-parse- an-xml-file-in-c – louis12356
向我們展示您的整個XML結構。你發佈的內容是不夠的。 –
完整的XML包含相同的這樣的事情字符串名稱的東西和一些價值... –