XML marshaller/unmarshaller
Скачать (zip-файл; Размер - 6408)Обсудить в форуме
Описание
Классы для перевода XML-структур в объекты и наоборот.
На больших объемах данных работает достаточно медленно, поэтому использовать для более менее небольших XML-структур.
На больших объемах данных работает достаточно медленно, поэтому использовать для более менее небольших XML-структур.
Текст примера
ПРИМЕР №1: (простой плоский объект с атрибутами) class (TXmlBase) TPerson() initTXmlBase("PERSON"); // "PERSON" имя корневого тега XmlAttribute("sex", "sexAttr"); // sex-имя переменной в объекте, "sexAttr"-имя атрибута в XML var sex; XmlElement("firstName", "FIRST_NAME", TXmlHelper.PRIMITIVE_OBJECT); // "firstName"-имя переменной в объекте, "FIRST_NAME"-имя тега в XML, TXmlBase.PRIMITIVE_OBJECT-признак что значение примитивного типа var firstName; XmlElement("lastName", "LAST_NAME", TXmlHelper.PRIMITIVE_OBJECT); // "lastName"-имя переменной в объекте, "LAST_NAME"-имя тега в XML, TXmlBase.PRIMITIVE_OBJECT-признак что значение примитивного типа var lastName; XmlElement("age", "AGE", TXmlHelper.PRIMITIVE_OBJECT); // "age"-имя переменной в объекте, "AGE"-имя тега в XML, TXmlBase.PRIMITIVE_OBJECT-признак что значение примитивного типа var age; end; PrintLn("*************** МАРШАЛИНГ (ОБЪЕКТ В XML-СТРОКУ) ***************"); var marshaler = TXmlMarshaler(); var person = TPerson(); person.sex = "M"; person.firstName = "Иван"; person.age = 25; PrintLn(marshaler.toXmlString(person)); // выведем сформированный XML на экран PrintLn("---------------------------------------------------------------"); PrintLn("************** АНМАРШАЛИНГ (XML-СТРОКА В ОБЪЕКТ) **************"); var unmarshaler = TXmlUnmarshaler(); var xmlStr = "<PERSON sexAttr=\"M\"><FIRST_NAME>Колян</FIRST_NAME><LAST_NAME>Пуговкин</LAST_NAME><AGE>15</AGE></PERSON>"; var person2 = TPerson(); unmarshaler.fromXmlString(xmlStr, person2); PrintLn("person2.sex : " + person2.sex); PrintLn("person2.firstName: " + person2.firstName); PrintLn("person2.lastName : " + person2.lastName); PrintLn("person2.age : " + person2.age); PrintLn("---------------------------------------------------------------");