Ejemplo n.º 1
0
        private static IEnumerable <XmlNode> BuildTree(string xmlString, out CDataMatchHandler cdataMatchHandler)
        {
            cdataMatchHandler = new CDataMatchHandler();

            xmlString = _encodeCDataRegex.Replace(xmlString, cdataMatchHandler.Encode);

            xmlString = _encodeRegex.Replace(xmlString, delegate(Match match)
            {
                string entiryStr = match.Groups["tag"].Value;

                return(IsCorrectEscapeEntity(entiryStr)
                    ?  _ampersandWord + entiryStr
                    : "&" + entiryStr);
            });


            var xmlReaderSettings = new XmlReaderSettings {
                DtdProcessing = DtdProcessing.Parse, XmlResolver = null
            };

            using (XmlReader xmlReader = XmlTextReader.Create(new StringReader(xmlString), xmlReaderSettings))
            {
                return(BuildTree(xmlReader, 0).ToList());
            }
        }
Ejemplo n.º 2
0
        private static IEnumerable<XmlNode> BuildTree(string xmlString, out CDataMatchHandler cdataMatchHandler)
        {
            cdataMatchHandler = new CDataMatchHandler();

            xmlString = _encodeCDataRegex.Replace(xmlString, cdataMatchHandler.Encode);

            xmlString = _encodeRegex.Replace(xmlString, delegate(Match match)
            {
                string entiryStr =  match.Groups["tag"].Value;

                return IsCorrectEscapeEntity(entiryStr) 
                    ?  _ampersandWord + entiryStr
                    : "&" + entiryStr;
            });


            var xmlReaderSettings = new XmlReaderSettings {DtdProcessing = DtdProcessing.Parse, XmlResolver = null};

            using (XmlReader xmlReader = XmlTextReader.Create(new StringReader(xmlString), xmlReaderSettings))
            {
                return BuildTree(xmlReader, 0).ToList();
            }
        }