我需要使用system.xml解析c#中的以下xml代码。我需要一个包含标签User的内容的字符串列表。
<Configuration>
....
<DebugUsersMail>
<User>bob@example.com</User>
<User>lenny@example.com</User>
</DebugUsersMail>
...
</Configuration>
答案 0 :(得分:2)
如果你能使用Linq这样的话很简单
XDocument xmlDoc = XDocument.Load("C:\\your_xml_file.xml");
List<string> users = xmlDoc.Descendants("User").Select(xElem => (string)xElem).ToList();
您需要在using语句中包含对System.Xml.Linq的引用才能使用XDocument对象。
但是,假设xml文件中没有其他用户元素,您不希望包含在列表中。
如果你想更具体一点,你可以这样做
List<string> users = xmlDoc.Descendants("DebugUsersMail")
.Descendants("User").Select(xElem => (string)xElem).ToList();
答案 1 :(得分:1)
我找到了解决方案:
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;
答案 2 :(得分:0)
在C#中有很多方法可以做到这一点。您可以使用:
要采取的路线取决于XML的其余部分。