private void UpdateGenericPlaceholder(ElementGenericPlaceholder elementGenericPlaceholder,
                                              ISegment originalTarget, ISegment originalSource, Stack <IAbstractMarkupDataContainer> containers)
        {
            if (string.Compare(elementGenericPlaceholder.CType, "lb", StringComparison.CurrentCultureIgnoreCase) == 0)
            {
                UpdateLineBreak(elementGenericPlaceholder, containers);
            }

            //TODO provide support for other generic placeholders
        }
        private void UpdateLineBreak(ElementGenericPlaceholder elementGenericPlaceholder, Stack <IAbstractMarkupDataContainer> containers)
        {
            var textEquivalent = elementGenericPlaceholder.TextEquivalent.Replace("\\r", "\r").Replace("\\n", "\n");

            if (string.IsNullOrEmpty(textEquivalent))
            {
                textEquivalent = "\n";
            }

            var text      = _segmentBuilder.Text(textEquivalent);
            var container = containers.Peek();

            container.Add(text);
        }
Example #3
0
        private ElementGenericPlaceholder ReadElementGenericPlaceholder(XmlReader xmlReader)
        {
            var placeholder = new ElementGenericPlaceholder();

            var index = 0;

            while (xmlReader.Read())
            {
                switch (xmlReader.NodeType)
                {
                case XmlNodeType.Element:
                    if (index == 0 && string.Compare(xmlReader.Name, "x", StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        index++;
                        while (xmlReader.MoveToNextAttribute())
                        {
                            if (string.Compare(xmlReader.Name, "id", StringComparison.OrdinalIgnoreCase) == 0)
                            {
                                placeholder.TagId = xmlReader.Value;
                            }
                            if (string.Compare(xmlReader.Name, "equiv-text", StringComparison.OrdinalIgnoreCase) == 0)
                            {
                                placeholder.TextEquivalent = xmlReader.Value;
                            }
                            if (string.Compare(xmlReader.Name, "ctype", StringComparison.OrdinalIgnoreCase) == 0)
                            {
                                placeholder.CType = xmlReader.Value;
                            }
                        }
                    }
                    break;
                }
            }

            return(placeholder);
        }