mein Code versucht, Daten aus dem RSS-Feed einer Website zu greifen. Es ergreift die Knoten fein, aber wenn versucht wird, die Daten von einem Knoten mit einem Doppelpunkt abzurufen, stürzt es ab und gibt den Fehler "Namespace Manager oder XsltContext erforderlich. Diese Abfrage hat ein Präfix, eine Variable oder eine benutzerdefinierte Funktion." Der Code ist unten dargestellt:So wählen Sie XML-Knoten mit XML-Namespaces aus einem XmlDocument aus?
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 = "";
}
}
Ich verstehe, dass ich den Namensraum definieren müssen, aber ich bin nicht sicher, wie dies zu tun. Hilfe wäre willkommen.
+1 schlug mich zu ihm - das ist genau richtig, es ist ** XML-Namespaces ** - nicht * XML-Tags mit Doppelpunkten in ihrem Namen * mit denen wir es hier zu tun haben ... –
Perfekt gearbeitet. Hatte von dem AddNamespace-Befehl gehört, hatte aber Schwierigkeiten, den zweiten Parameter herauszufinden. – Sticky
@marc_s, den Titel angepasst. – Sticky