単純なサイトマップをトラバースしようとしています (その場で要素を追加および削除します)。これはサンプル レイアウトです。
<?xml version="1.0" encoding="UTF-8"?>
<urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<url>
<loc>http://mysite.com/</loc>
<priority>1.00</priority>
<changefreq>daily</changefreq>
</url>
<url>
<loc>http://mysite.com/Default.aspx</loc>
<priority>0.80</priority>
<changefreq>daily</changefreq>
</url>
</urlset>
奇妙なことに、ドキュメントを読み込んだ後に Element() メソッドを使用して子要素にアクセスしようとすると、null であり、Elements() も同様であるため、それらをトラバースできません。ただし、 Nodes() メソッドには要素があります。
ここに私が書いたコードがあります
XElement siteMap = XElement.Load(Server.MapPath("~/sitemap.xml"));
//First remove all article nodes
foreach (XElement elem in siteMap.Elements())
{
XElement loc = elem.Element("loc");
if (loc.Value.Contains("http://mysite.com/articles/"))
elem.Remove();
}
elem の要素 (要素、要素) を取得しようとして何をしても、null が返されます。
何が間違っている可能性がありますか?このコードは実行されるはずです。ではない?