1

有没有办法使用XDocument和 LINQ 来提取web.sitemap文件中所有元素的所有title属性,而不管深度如何?任何有关如何执行此操作的示例将不胜感激!siteMapNode

4

3 回答 3

2

你可以试试这样的

XElement xelement = XElement.Load(Server.MapPath("~/web.sitemap"));
    var urlList = xelement.Descendants().Attributes()
       .Where(x => x.Name == "title")
       .Select(x => x.Value);

    foreach (string s in urlList)
    {

    }
于 2012-08-18T03:01:15.963 回答
0
string sitemapfile = File.ReadAllText("path of web.sitemap");

XDocument doc = XDocument.Parse(sitemapfile);

var elements = doc.Root.Elements("siteMapNode");
foreach (var elem in elements) {
    if (elem.Attribute("title") != null)
         {
        //do your work
         }
于 2012-08-18T03:01:05.080 回答
0

有时,使用普通的旧 XPath 会容易得多。

var doc = XDocument.Parse(contentsOfFile);
doc.XPathEvaluate("//@title");
foreach (var element in ((IEnumerable)result).Cast<XAttribute>())
{
    Console.WriteLine("{0} has value {1}", element.Name, element.Value);
}
于 2012-08-18T03:02:04.073 回答