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); }
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); }