private bool TryProcessFeedStream(BufferingStreamReader responseStream) { bool isRssOrFeed = false; try { XmlReaderSettings readerSettings = GetSecureXmlReaderSettings(); XmlReader reader = XmlReader.Create(responseStream, readerSettings); // See if the reader contained an "RSS" or "Feed" in the first 10 elements (RSS and Feed are normally 2 or 3) int readCount = 0; while ((readCount < 10) && reader.Read()) { if (string.Equals("rss", reader.Name, StringComparison.OrdinalIgnoreCase) || string.Equals("feed", reader.Name, StringComparison.OrdinalIgnoreCase)) { isRssOrFeed = true; break; } readCount++; } if (isRssOrFeed) { XmlDocument workingDocument = new XmlDocument(); // performing a Read() here to avoid rrechecking // "rss" or "feed" items reader.Read(); while (!reader.EOF) { // If node is Element and it's the 'Item' or 'Entry' node, emit that node. if ((reader.NodeType == XmlNodeType.Element) && (string.Equals("Item", reader.Name, StringComparison.OrdinalIgnoreCase) || string.Equals("Entry", reader.Name, StringComparison.OrdinalIgnoreCase)) ) { // this one will do reader.Read() internally XmlNode result = workingDocument.ReadNode(reader); WriteObject(result); } else { reader.Read(); } } } } catch (XmlException) { } finally { responseStream.Seek(0, SeekOrigin.Begin); } return(isRssOrFeed); }
private bool TryProcessFeedStream(BufferingStreamReader responseStream) { bool isRssOrFeed = false; try { XmlReaderSettings readerSettings = GetSecureXmlReaderSettings(); XmlReader reader = XmlReader.Create(responseStream, readerSettings); // See if the reader contained an "RSS" or "Feed" in the first 10 elements (RSS and Feed are normally 2 or 3) int readCount = 0; while ((readCount < 10) && reader.Read()) { if (String.Equals("rss", reader.Name, StringComparison.OrdinalIgnoreCase) || String.Equals("feed", reader.Name, StringComparison.OrdinalIgnoreCase)) { isRssOrFeed = true; break; } readCount++; } if (isRssOrFeed) { XmlDocument workingDocument = new XmlDocument(); // performing a Read() here to avoid rrechecking // "rss" or "feed" items reader.Read(); while (!reader.EOF) { // If node is Element and it's the 'Item' or 'Entry' node, emit that node. if ((reader.NodeType == XmlNodeType.Element) && (string.Equals("Item", reader.Name, StringComparison.OrdinalIgnoreCase) || string.Equals("Entry", reader.Name, StringComparison.OrdinalIgnoreCase)) ) { // this one will do reader.Read() internally XmlNode result = workingDocument.ReadNode(reader); WriteObject(result); } else { reader.Read(); } } } } catch (XmlException) { } finally { responseStream.Seek(0, SeekOrigin.Begin); } return isRssOrFeed; }
private bool TryProcessFeedStream(BufferingStreamReader responseStream) { bool flag = false; try { XmlReaderSettings secureXmlReaderSettings = this.GetSecureXmlReaderSettings(); XmlReader reader = XmlReader.Create(responseStream, secureXmlReaderSettings); for (int i = 0; (i < 10) && reader.Read(); i++) { if (string.Equals("rss", reader.Name, StringComparison.OrdinalIgnoreCase) || string.Equals("feed", reader.Name, StringComparison.OrdinalIgnoreCase)) { flag = true; break; } } if (flag) { XmlDocument document = new XmlDocument(); while (reader.Read()) { if ((reader.NodeType == XmlNodeType.Element) && (string.Equals("Item", reader.Name, StringComparison.OrdinalIgnoreCase) || string.Equals("Entry", reader.Name, StringComparison.OrdinalIgnoreCase))) { XmlNode sendToPipeline = document.ReadNode(reader); base.WriteObject(sendToPipeline); } } } return(flag); } catch (XmlException) { } finally { responseStream.Seek(0L, SeekOrigin.Begin); } return(flag); }
private bool TryProcessFeedStream(BufferingStreamReader responseStream) { bool flag = false; try { XmlReaderSettings secureXmlReaderSettings = this.GetSecureXmlReaderSettings(); XmlReader reader = XmlReader.Create(responseStream, secureXmlReaderSettings); for (int i = 0; (i < 10) && reader.Read(); i++) { if (string.Equals("rss", reader.Name, StringComparison.OrdinalIgnoreCase) || string.Equals("feed", reader.Name, StringComparison.OrdinalIgnoreCase)) { flag = true; break; } } if (flag) { XmlDocument document = new XmlDocument(); while (reader.Read()) { if ((reader.NodeType == XmlNodeType.Element) && (string.Equals("Item", reader.Name, StringComparison.OrdinalIgnoreCase) || string.Equals("Entry", reader.Name, StringComparison.OrdinalIgnoreCase))) { XmlNode sendToPipeline = document.ReadNode(reader); base.WriteObject(sendToPipeline); } } } return flag; } catch (XmlException) { } finally { responseStream.Seek(0L, SeekOrigin.Begin); } return flag; }