Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony序列化程序XML属性_Xml_Symfony_Serialization - Fatal编程技术网

Symfony序列化程序XML属性

Symfony序列化程序XML属性,xml,symfony,serialization,Xml,Symfony,Serialization,我想使用symfonyxml序列化程序来转换类实例(而不是数组)。例如,我想创建一个类似这样的XML,其属性为myAtt=“foo” 以及下面的初始化 use Symfony\Component\Serializer\Encoder\JsonEncoder; use Symfony\Component\Serializer\NameConverter\MetadataAwareNameConverter; use Symfony\Component\Serializer\Normalizer\O

我想使用symfonyxml序列化程序来转换类实例(而不是数组)。例如,我想创建一个类似这样的XML,其属性为myAtt=“foo”

以及下面的初始化

use Symfony\Component\Serializer\Encoder\JsonEncoder;
use Symfony\Component\Serializer\NameConverter\MetadataAwareNameConverter;
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
use Symfony\Component\Serializer\Serializer;
use Symfony\Component\Serializer\Encoder\XmlEncoder;
use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory;
use Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader;
use Doctrine\Common\Annotations\AnnotationReader;



$classMetadataFactory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()));

$metadataAwareNameConverter = new MetadataAwareNameConverter($classMetadataFactory);

$serializer = new Serializer(
    [new ObjectNormalizer($classMetadataFactory, $metadataAwareNameConverter)],
    ['json' => new JsonEncoder(), 'xml' => new XmlEncoder()]
);
有人知道如何添加myAtt属性吗

谢谢

这将生成以下XML

<?xml version="1.0"?>
<REQ>
    <TravelAgencySender>
        <CityName>town</CityName>
        <AgencyID>agency</AgencyID>
    </TravelAgencySender>   
</REQ>

镇
机构

以@开头的数组键被视为XML属性:

['foo' => ['@bar' => 'value']];
编码如下:

<?xml version="1.0"?>
<response>
     <foo bar="value"/>
</response>

以@开头的数组键被视为XML属性:

['foo' => ['@bar' => 'value']];
编码如下:

<?xml version="1.0"?>
<response>
     <foo bar="value"/>
</response>


如果可以,请转到JMSSerializer捆绑包。属性为的示例是。如果可以,请转到JMSSerializer包。属性为的示例如下。