mój kod próbuje pobrać dane z kanału RSS witryny. Łączy ona węzły w porządku, ale przy próbie przechwycenia danych z węzła za pomocą dwukropka, zawiesza się i podaje błąd "Namespace Manager lub XsltContext potrzebne.To zapytanie ma prefiks, zmienną lub funkcję zdefiniowaną przez użytkownika." Kod jest pokazany poniżej:Jak wybrać węzły XML z obszarami nazw XML z XmlDocument?
WebRequest request = WebRequest.Create("http://buypoe.com/external.php?type=RSS2&lastpost=true");
WebResponse response = request.GetResponse();
StringBuilder sb = new StringBuilder("");
System.IO.StreamReader rssStream = new System.IO.StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8"));
XmlDocument rssDoc = new XmlDocument();
rssDoc.Load(rssStream);
XmlNodeList rssItems = rssDoc.SelectNodes("rss/channel/item");
for (int i = 0; i < 5; i++)
{
XmlNode rssDetail;
rssDetail = rssItems.Item(i).SelectSingleNode("dc:creator");
if (rssDetail != null)
{
user = rssDetail.InnerText;
}
else
{
user = "";
}
}
Rozumiem, że muszę zdefiniować przestrzeń nazw, ale nie jestem pewien, jak to zrobić. Pomoc byłaby doceniona.
+1 pokonać mnie do niego - to jest dokładnie to prawo, to przestrzenie nazw XML ** ** - nie * Znaczniki XML z dwukropkami w nazwie *, z którymi mamy tu do czynienia ... –
Działa doskonale. Usłyszałem o poleceniu AddNamespace, ale miałem problem z ustaleniem drugiego parametru. – Sticky
@marc_s, dostosował tytuł. – Sticky