Пример #1
0
        private static void WriteElement(string name, TextWriter output, XElement d, bool fullelements, XDiffAction action)
        {
            if (d.Name.LocalName == "update" || d.Name.LocalName == "insert")
            {
                output.WriteLine("\t" + name + " : (" + d.ToString().Replace("(", "\\(").Replace(")", "\\)") + ")");
                return;
            }
            fullelements = fullelements || (name == "NewestElement" && action == XDiffAction.CreateElement);

            if (fullelements)
            {
                output.WriteLine("\t" + name + " : (" + d.ToString().Replace("(", "\\(").Replace(")", "\\)") + ")");
            }
            else
            {
                var attr = d.Attribute("id");
                if (null == attr)
                {
                    attr = d.Attribute("code");
                }
                var p = d.Attribute("__parent");
                output.Write("\t" + name + " name=" + d.Name.LocalName + " " + attr.Name + "=" + attr.Value.Escape(EscapingType.BxlStringOrLiteral));
                if (null != p)
                {
                    output.Write(" parent=" + p.Value.Escape(EscapingType.BxlStringOrLiteral));
                }
                if (name == "NewestElement" && action == XDiffAction.ChangeElement)
                {
                    output.Write(" : ");
                    output.Write(d.Value.Escape(EscapingType.BxlStringOrLiteral));
                }
                output.WriteLine();
            }
        }
Пример #2
0
        private static IEnumerable <XDiffItem> ProcessCollector(XDiffMatch xd, XElement create_collector, XDiffAction action)
        {
            var len = create_collector.Attributes().Count();

            if (len != 0)
            {
                if (len == 1)
                {
                    yield return
                        (new XDiffItem {
                        Action = action, BasisElement = xd.b, NewestAttribute = create_collector.Attributes().First()
                    });
                }
                else
                {
                    yield return(new XDiffItem {
                        Action = action, BasisElement = xd.b, NewestElement = create_collector
                    });
                }
            }
        }