Я использую библиотеку xsd2php (которая сама использует jsm-serializer). Когда я сериализую объект, он возвращает форматированный XML, например:
<?xml version="1.0" encoding="UTF-8"?>
<priceRequest>
<appId>PC</appId>
<appVersion>3.0</appVersion>
</priceRequest>
Как настроить сериализатор для вывода XML без форматирования, например:
<?xml version="1.0" encoding="UTF-8"?><priceRequest><appId>PC</appId><appVersion>3.0</appVersion></priceRequest>
Прямо сейчас я создаю сериализатор следующим образом:
$serializerBuilder = SerializerBuilder::create();
$serializerBuilder->configureHandlers(function (HandlerRegistryInterface $handler) use ($serializerBuilder) {
$serializerBuilder->addDefaultHandlers();
$handler->registerSubscribingHandler(new BaseTypesHandler());
$handler->registerSubscribingHandler(new XmlSchemaDateHandler());
$handler->registerSubscribingHandler(new AnyTypeHandler());
});
$this->serializer = $serializerBuilder->build();
А затем просто сериализовать данные:
$this->serializer->serialize($data, $format, $context);
Заранее спасибо.
inline
. С другой стороны, если вам нужно создать пользовательский обработчик сериализации, возможно, вы можете использовать некоторые свойства сериализатора JMS, посмотрите здесь Metadata/Driver/XmlDriver.php - person Yulio Aleman Jimenez   schedule 15.02.2018inline
касается не форматирования, а структуры: оно помещает элемент в корень. - person sevavietl   schedule 15.02.2018