comparison Implab/Xml/JsonXmlReader.cs @ 264:3a6e18c432be v3

Added XmlToJson xsl transformation. Added JsonXmlReader.CreateJsonXmlReader(...) methods Added SerializationHelpers.SerializeJson/DeserializeJson methods
author cin
date Mon, 16 Apr 2018 18:43:49 +0300
parents 7c7e9ad6fe4a
children 74e048cbaac8
comparison
equal deleted inserted replaced
263:711572866e0c 264:3a6e18c432be
1 using Implab.Formats.Json; 1 using Implab.Formats.Json;
2 using System; 2 using System;
3 using System.Collections.Generic; 3 using System.Collections.Generic;
4 using System.Globalization; 4 using System.Globalization;
5 using System.IO;
5 using System.Linq; 6 using System.Linq;
6 using System.Xml; 7 using System.Xml;
7 8
8 namespace Implab.Xml { 9 namespace Implab.Xml {
9 public class JsonXmlReader : XmlReader { 10 public class JsonXmlReader : XmlReader {
586 m_jsonSkip = prev.skip; 587 m_jsonSkip = prev.skip;
587 588
588 return !skip; 589 return !skip;
589 } 590 }
590 591
592 protected override void Dispose(bool disposing) {
593 if (disposing)
594 Safe.Dispose(m_parser);
595 base.Dispose(true);
596 }
597
591 public override string ToString() { 598 public override string ToString() {
592 switch (NodeType) { 599 switch (NodeType) {
593 case XmlNodeType.Element: 600 case XmlNodeType.Element:
594 return $"<{Name} {string.Join(" ", (m_attributes ?? new XmlSimpleAttribute[0]).Select(x => $"{x.Prefix}{(string.IsNullOrEmpty(x.Prefix) ? "" : ":")}{x.QName.Name}='{x.Value}'"))} {(IsEmptyElement ? "/" : "")}>"; 601 return $"<{Name} {string.Join(" ", (m_attributes ?? new XmlSimpleAttribute[0]).Select(x => $"{x.Prefix}{(string.IsNullOrEmpty(x.Prefix) ? "" : ":")}{x.QName.Name}='{x.Value}'"))} {(IsEmptyElement ? "/" : "")}>";
595 case XmlNodeType.Attribute: 602 case XmlNodeType.Attribute:
604 return $"</{Name}>"; 611 return $"</{Name}>";
605 default: 612 default:
606 return $".{NodeType} {Name} {Value}"; 613 return $".{NodeType} {Name} {Value}";
607 } 614 }
608 } 615 }
616
617 #region static methods
618
619 public static JsonXmlReader CreateJsonXmlReader(TextReader textReader, JsonXmlReaderOptions options = null) {
620 var jsonReader = JsonReader.Create(textReader);
621 return new JsonXmlReader(jsonReader, options);
622 }
623
624 public static JsonXmlReader CreateJsonXmlReader(Stream stream, JsonXmlReaderOptions options = null) {
625 var jsonReader = JsonReader.Create(stream);
626 return new JsonXmlReader(jsonReader, options);
627 }
628
629 public static JsonXmlReader CreateJsonXmlReader(string file, JsonXmlReaderOptions options = null) {
630 var jsonReader = JsonReader.Create(file);
631 return new JsonXmlReader(jsonReader, options);
632 }
633
634 #endregion
609 } 635 }
610 } 636 }