備忘録 SelectSingleNode

XML 内にコロン付きのタグ名 NameSpace(名前空間)があるとき、SelectSingleNode を使って情報を取る方法。(C#)

  • 次のような XML 中の赤いところの値が欲しいとき


<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:nicolive="[]http://live.nicovideo.jp/[]">
<channel>
<title>ニコニコ生放送</title>
<nicolive:total_count>254</nicolive:total_count>
</channel>
</rss>

  • 次のように NameSpace を指定する必要がある


XmlDocument xml = new XmlDocument();
xml.Load(url);
XmlNamespaceManager nsm = new XmlNamespaceManager(xml.NameTable);
nsm.AddNamespace("nicolive", "[]http://live.nicovideo.jp/[]");
XmlNode node = xml.SelectSingleNode("/rss/channel/nicolive:total_count", nsm);
青色に着目。node.InnerText の値が上の 254 になる。
終わり