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 に答える