我正在做一个挑战,但我很难获得XML节点的名称,“文件夹”。我试图返回所有以'u'开头的文件夹。
我想输出为“Uninstall Information”和“Users”,但我仍然拥有所有XML结构。
任何帮助都会很棒。
class Program
{
public static IEnumerable<string> FolderNames(string xml, char startingLetter)
{
List<string> elem = new List<string>();
List<int> list = new List<int>();
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(xml);
XmlNodeList temp = xmldoc.SelectNodes("folder");
elem.Add(temp[0].InnerXml);
Console.WriteLine(elem[0]);
return elem;
}
public static void Main(string[] args)
{
string xml =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<folder name=\"c\">" +
"<folder name=\"program files\">" +
"<folder name=\"uninstall information\" />" +
"</folder>" +
"<folder name=\"users\" />" +
"</folder>";
Program.FolderNames(xml, 'u');
//foreach (string name in Program.FolderNames(xml, 'u'))
//Console.WriteLine(name);
}
}
}
答案 0 :(得分:1)
以下代码显示了如何使用XPath表达式选择以XML中的特定字母开头的文件夹名称。该XPath包含以下部分:
url(r'^login/', rest_auth_views.obtain_auth_token),
选择所有“文件夹”XML元素(包括子文件夹)
//folder
选择这些元素的属性“name”
/@name
是仅选择以指定字母
[starts-with(., 'u')]