//============================================================
        //	WEB RESOURCE PARSING METHODS
        //============================================================
        #region CreateSafeNavigator(string xml)
        /// <summary>
        /// Creates a <see cref="XPathNavigator"/> against the supplied XML data.
        /// </summary>
        /// <param name="xml">The XML data to be navigated by the created <see cref="XPathNavigator"/>.</param>
        /// <returns>
        ///     An <see cref="XPathNavigator"/> that provides a cursor model for navigating the supplied XML data.
        ///     The supplied <paramref name="xml"/> data is parsed to remove invalid XML characters that would normally prevent
        ///     a navigator from being created.
        /// </returns>
        /// <exception cref="ArgumentNullException">The <paramref name="xml"/> data is a null reference (Nothing in Visual Basic).</exception>
        /// <exception cref="ArgumentNullException">The <paramref name="xml"/> data is an empty string.</exception>
        public static XPathNavigator CreateSafeNavigator(string xml)
        {
            //------------------------------------------------------------
            //	Local members
            //------------------------------------------------------------
            XPathNavigator navigator = null;

            //------------------------------------------------------------
            //	Validate parameter
            //------------------------------------------------------------
            Guard.ArgumentNotNullOrEmptyString(xml, "xml");

            //------------------------------------------------------------
            //	Encode XML data to convert invalid XML hexadecimal values
            //------------------------------------------------------------
            string safeXml = SyndicationEncodingUtility.RemoveInvalidXmlHexadecimalCharacters(xml);

            //------------------------------------------------------------
            //	Create navigator against safely encoded XML data
            //------------------------------------------------------------
            using (StringReader reader = new StringReader(safeXml))
            {
                XPathDocument document = new XPathDocument(reader);
                navigator = document.CreateNavigator();
            }

            return(navigator);
        }
        /// <summary>
        /// Creates a <see cref="XPathNavigator"/> against the supplied XML data.
        /// </summary>
        /// <param name="xml">The XML data to be navigated by the created <see cref="XPathNavigator"/>.</param>
        /// <returns>
        ///     An <see cref="XPathNavigator"/> that provides a cursor model for navigating the supplied XML data.
        ///     The supplied <paramref name="xml"/> data is parsed to remove invalid XML characters that would normally prevent
        ///     a navigator from being created.
        /// </returns>
        /// <exception cref="ArgumentNullException">The <paramref name="xml"/> data is a null reference (Nothing in Visual Basic).</exception>
        /// <exception cref="ArgumentNullException">The <paramref name="xml"/> data is an empty string.</exception>
        public static XPathNavigator CreateSafeNavigator(string xml)
        {
            XPathNavigator navigator = null;

            Guard.ArgumentNotNullOrEmptyString(xml, "xml");

            string safeXml = SyndicationEncodingUtility.RemoveInvalidXmlHexadecimalCharacters(xml);

            using (StringReader reader = new StringReader(safeXml))
            {
                XPathDocument document = new XPathDocument(reader);
                navigator = document.CreateNavigator();
            }

            return(navigator);
        }