我需要在c#中使用system.xml解析下面的xml代碼。我需要一個包含標籤User內容的字符串列表。如何解析這個XML?
<Configuration>
....
<DebugUsersMail>
<User>[email protected]</User>
<User>[email protected]</User>
</DebugUsersMail>
...
</Configuration>
我需要在c#中使用system.xml解析下面的xml代碼。我需要一個包含標籤User內容的字符串列表。如何解析這個XML?
<Configuration>
....
<DebugUsersMail>
<User>[email protected]</User>
<User>[email protected]</User>
</DebugUsersMail>
...
</Configuration>
我找到了一個解決方案:
List<string> returnList = new List<string>();
XmlNodeList node = xmlDocument.GetElementsByTagName("DebugUsersMail");
XmlNodeList childNodes = node[0].ChildNodes;
for(int i = 0; i < childNodes.Count; i++)
{
returnList.Add(childNodes[i].InnerText);
}
return returnList;
有很多方法可以在C#中完成。您可以使用:
路線採取取決於XML的其他部分。
如果你可以使用LINQ這樣的事情是好的,簡單
XDocument xmlDoc = XDocument.Load("C:\\your_xml_file.xml");
List<string> users = xmlDoc.Descendants("User").Select(xElem => (string)xElem).ToList();
你需要在你的using語句使用XDocument對象以System.Xml.Linq的一個參考。
但是,這確實假定xml文件中沒有其他用戶元素不包含在列表中。
如果您想更具體的你可以這樣做
List<string> users = xmlDoc.Descendants("DebugUsersMail")
.Descendants("User").Select(xElem => (string)xElem).ToList();
當我編輯此代碼時,我收到以下錯誤消息:System.Collections.Generic.IEnumerable
看起來你沒有在你的使用語句中引用Linq。嘗試使用System.Linq添加;到你的使用。它應該在3.5上正常工作,就像我爲它編寫的那樣 – Gavin 2011-05-05 11:39:28
你已經錯過了示例XML – 2011-05-05 10:10:08
哪裏是XML? – YesMan85 2011-05-05 10:10:18
對不起。它現在在那裏。 – Luke 2011-05-05 10:11:16