Sie können einfach eine Flexform XML-String in ein Array mit TYPO3 Core-API konvertieren:
$ffContent = \TYPO3\CMS\Core\Utility\GeneralUtility::xml2array($xmlString);
Dies wird die XML-Tag-Struktur auf ein Array nur konvertieren, die Sie mit einem hübschen Blättern komplexes Array zu iterieren.
Um eine vereinfachte Struktur, ohne alle die Flexform „aufblasen“ für Blätter zu bekommen, Lokalisierung usw. bietet Extbase seine eigene FlexformService:
$flexformService = GeneralUtility::makeInstance('TYPO3\CMS\Extbase\Service\FlexFormService');
$ffContent = $flexformService->convertFlexFormContentToArray($xmlString);
Wenn Sie Inhalte von einer Lokalisierung benötigen, müssen Sie ein, weiterzureichen Wert für entweder $languagePointer
(der zweite Parameter) oder $valuePointer
(der dritte).
BEARBEITEN: Da Sie geschrieben haben, dass Sie keinen Controller zur Hand haben, um den Code oben in zu setzen, möchten Sie möglicherweise einen Ansichtshelfer dafür erstellen. Die Ansicht Helfer konnte das Ergebnis der Operation als separate Variablen zuweisen, die Sie
{namespace me=MyVendor\MyExtension\ViewHelpers}
…
<me:decodeFlexform value="{object.pi_flexform}" as="ffValues">
{ffValues.myField}
</me:decodeFlexform>
Wahrscheinlich auch gibt es bereits eine in einer der verschiedenen View Helfer Sammlung Erweiterungen (vhs und Freunde) bereits zugreifen konnte.
Danke, ich habe es jetzt mit einem Datenprozessor wie in diesem Beispiel gelöst: https://github.com/benjaminkott/bootstrap_package/blob/master/Classes/DataProcessing/FlexFormProcessor.php –
Das ist eine gute Version! Viel Spass damit. –