gpt4 book ai didi

xml - Symfony Serializer XML 向根节点添加自定义属性

转载 作者:行者123 更新时间:2023-12-03 20:25:44 25 4
gpt4 key购买 nike

使用 Serializer 组件(在 Symfony4 中)生成 XML 文件时,我想向根节点添加自定义属性,但我不知道如何添加。

docs提及如何命名根节点,但未提及如何添加自定义属性。

在我的服务中,我有:

use Symfony\Component\Serializer\Serializer;
// ..

// $this->serializer is auto-wired
$this->serializer->serialize($myEntityObjectToSerialize, 'xml', [
'xml_format_output' => true,
'xml_encoding' => 'utf-8',
'xml_root_node_name' => 'document'
]);

这会产生:
<?xml version="1.0" encoding="utf-8"?>
<document>
// ...
</document>

但我想要这样的东西:
<?xml version="1.0" encoding="utf-8"?>
<document id="123" lang="Eng">
// ...
</document>

我不知道我错过了什么。
感谢您的帮助。

最佳答案

好的,我想通了。

阅读更多关于 XmlEncoder我看到为了向节点添加属性,您可以使用 @符号和 #为值(value)。

serialize()自动创建根节点并将其包装在我的实体数据周围,我只需要首先定义它以及我的实体,然后将其传递给序列化方法,如下所示:

$rootNode = [
'@id' => 12345,
'@lang' => 'Eng',
'#' => $myEntityObjectToSerialize
]

// $this->serializer is auto-wired
$this->serializer->serialize($rootNode, 'xml', [
'xml_format_output' => true,
'xml_encoding' => 'utf-8',
'xml_root_node_name' => 'document'
]);

现在它产生了我想要的结果。
希望这对 future 的任何人都有帮助。

关于xml - Symfony Serializer XML 向根节点添加自定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61735681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com