/// <summary>
        /// See <see cref="XmlWriter.WriteString"/>.
        /// </summary>
        public override void WriteString(string text)
        {
            if (mapping == null && reader != null)
            {
                mapping = reader.CompileCharacterMapping();
            }

            if (mapping != null && mapping.Count > 0)
            {
                var buf = new StringBuilder();
                foreach (char c in text)
                {
                    if (mapping.ContainsKey(c))
                    {
                        FlushBuffer(buf);
                        WriteRaw(mapping[c]);
                    }
                    else
                    {
                        buf.Append(c);
                    }
                }

                FlushBuffer(buf);
            }
            else
            {
                base.WriteString(text);
            }
        }
Exemple #2
0
 /// <summary>
 /// Loads XSLT stylesheet from <see cref="XmlReader"/>, with given settings and resolver.
 /// Wraps the reader if character maps are supported.
 /// </summary>
 protected void LoadStylesheetFromReader(XmlReader reader, XsltSettings settings, XmlResolver resolver)
 {
     if (supportCharacterMaps)
     {
         CharacterMappingXmlReader cmr = new CharacterMappingXmlReader(reader);
         this.compiledTransform.Load(cmr, settings, resolver);
         this.characterMap = cmr.CompileCharacterMapping();
     }
     else
     {
         this.compiledTransform.Load(reader, settings, resolver);
     }
 }
Exemple #3
0
 /// <summary>
 /// Loads XSLT stylesheet from <see cref="XmlReader"/>, with given settings and resolver.
 /// Wraps the reader if character maps are supported.
 /// </summary>        
 protected void LoadStylesheetFromReader(XmlReader reader, XsltSettings settings, XmlResolver resolver)
 {            
     if (supportCharacterMaps)
     {
         CharacterMappingXmlReader cmr = new CharacterMappingXmlReader(reader);
         this.compiledTransform.Load(cmr, settings, resolver);
         this.characterMap = cmr.CompileCharacterMapping();
     }
     else
     {
         this.compiledTransform.Load(reader, settings, resolver);
     }            
 }