From 4c42aad90c5f6e49aeb565d787f4c6ce6ab62b00 Mon Sep 17 00:00:00 2001 From: alcexhim Date: Fri, 8 Aug 2014 09:47:49 -0400 Subject: [PATCH] Fixed bug in XMLDataFormat with reading CDATA sections. The entire XMLDataFormat really has to be rewritten... --- .../DataFormats/Markup/XML/XMLDataFormat.cs | 39 +++++++++++-------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/CSharp/Plugins/UniversalEditor.Essential/DataFormats/Markup/XML/XMLDataFormat.cs b/CSharp/Plugins/UniversalEditor.Essential/DataFormats/Markup/XML/XMLDataFormat.cs index 57acba90..fff6dc9a 100644 --- a/CSharp/Plugins/UniversalEditor.Essential/DataFormats/Markup/XML/XMLDataFormat.cs +++ b/CSharp/Plugins/UniversalEditor.Essential/DataFormats/Markup/XML/XMLDataFormat.cs @@ -434,29 +434,36 @@ namespace UniversalEditor.DataFormats.Markup.XML } else { - insideTagValue = true; - if (insideAttributeArea) + if (insideSpecialDeclaration) { - (currentElement as MarkupTagElement).Attributes.Add(nextAttributeName, this.ReplaceEntitiesInput(currentString)); - nextAttributeName = null; - insideAttributeArea = false; + insideSpecialDeclaration = false; } else { - MarkupElement prevElement = currentElement; - currentElement = new MarkupTagElement(); - currentElement.FullName = currentString.Trim(); - if (prevElement != null && prevElement is MarkupContainerElement) + insideTagValue = true; + if (insideAttributeArea) { - (prevElement as MarkupContainerElement).Elements.Add(currentElement); + (currentElement as MarkupTagElement).Attributes.Add(nextAttributeName, this.ReplaceEntitiesInput(currentString)); + nextAttributeName = null; + insideAttributeArea = false; } else { - mom.Elements.Add(currentElement); - } - if (Settings.AutoCloseTagNames.Contains(currentElement.Name)) - { - currentElement = currentElement.Parent; + MarkupElement prevElement = currentElement; + currentElement = new MarkupTagElement(); + currentElement.FullName = currentString.Trim(); + if (prevElement != null && prevElement is MarkupContainerElement) + { + (prevElement as MarkupContainerElement).Elements.Add(currentElement); + } + else + { + mom.Elements.Add(currentElement); + } + if (Settings.AutoCloseTagNames.Contains(currentElement.Name)) + { + currentElement = currentElement.Parent; + } } } } @@ -800,7 +807,7 @@ namespace UniversalEditor.DataFormats.Markup.XML char padNext = tr.ReadChar(); padNext = tr.ReadChar(); - insideSpecialDeclaration = false; + // insideSpecialDeclaration = false; continue; } else