我使用 Symfony 3 Serializer 并通过 XmlEncoder 将我的对象转换为 XML。但是 XmlEncoder 在 xml prolog 中没有编码类型。如何解决这个问题呢?
我可以在根元素后添加带参数的自定义属性吗?
有没有办法在根元素中设置 xmlns?
我需要这样的 XML 输出:
<?xml version="1.0" encoding="utf-8"?>
<realty-feed xmlns="http://webmaster.yandex.ru/schemas/feed/realty/2010-06">
<generation-date>2010-10-05T16:36:00+04:00</generation-date>
...
</realty-feed>
现在我明白了:
<?xml version="1.0"?>
<realty-feed>
...
</realty-feed>
我的序列化程序代码片段:
$xmlEncoder = new XmlEncoder('realty-feed');
$normalizer = new CustomNormalizer();
$serializer = new Serializer(array($normalizer),array($xmlEncoder));
$output = $serializer->serialize($objectData, 'xml');
最佳答案
<?php
$xmlEncoder = new XmlEncoder('realty-feed');
$xml = $xmlEncoder->encode([
'@xmlns' => 'http://webmaster.yandex.ru/schemas/feed/realty/2010-06',
'generation-date' => '2010-10-05T16:36:00+04:00',
], 'xml');
echo $xml;
关于xml - 如何在 Symfony XmlEncoder 中设置编码 UTF-8 和 xmlns 属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47523962/