Am 01.12.14 15:30, schrieb Christian Platt:
Hallo Bernd,


die funktion xml2array() und die dazu passenden array2xml() können beim wording 
etwas verwirren.

hast du einen Array, so kannst du den damit in ein Standard xml überführen.
Genau dieses Standard xml kannst du dann mit xml2array wieder zurücküberführen.

Somit ideal geeigent um properties oder andere Objekteigenschaftenm, die ich 
heute noch nicht kenne, zu speichern.

Es ist nicht dazu geeignet ein xml in einen Array zu wandeln.

Da kann uns aber Herr json weiterhelfen.

Versuch mal folgenden Dreizeiler....
        
        function getArrayFromXML($xmlstr){
                $xml= new SimpleXMLElement($xmlstr);
                $json     = json_encode( $xml );
                return json_decode( $json, TRUE );
        }

das hab ich mal eingebaut. Sieht schon mal besser als die anderen Dinge aus (s.u.).

ich glaub ich bin aber trotzdem noch weit weg vom Abgleich zwischen Fluid_content-/Flux-Definition und pi_flexform-Inhalten.


Liebe Grüße
Christian

Am 01.12.2014 um 09:40 schrieb bernd wilke <t...@bernd-wilke.net>:


ich versuche mit \TYPO3\CMS\Core\Utility\GeneralUtility::xml2array() ein 
Fluid-Template zu analysieren.

das erste Problem waren die Namespace-Deklarationen. Das konnte ich aber mit 
preg_replace() lösen.

allerdings erhalte ich jetzt den Fehler:
| Line 2: Invalid document end

kann xml2array() keine mehrzeiligen Tags?

grundsätzlich wohl schon, xml2array erwartet aber, dass das Dokument aus genau einem Tag besteht. in meinem Fall stört sich die Function daran dass das erste Tag auch sofort wieder geschlossen wird und danach doch noch etwas kommt. (da das äußere Tag nur auf Wunsch mit ausgeliefert wird, kann ich außenrum noch ein <wrap>|</wrap> bauen.)

danach zeigt sich aber, dass nur die Tag-Namen als Knoten in einem Baum ausgegeben werden und gleichnamige Tags, die parallel liegen sich gegenseitig überschreiben.

Ich hab dannoch xml2tree () versucht, aber da sind dann eher zu viele Infos, mit leeren 'values', die ich gar nicht zuordnen kann.

Der Anfang meines Dokuments (nach dem preg_replace()):

| <f:layout name="Content" />
| <div xmlns="http://www.w3.org/1999/xhtml";
|      xmlns:flux="http://fedext.net/ns/flux/ViewHelpers";
|      xmlns:v="http://fedext.net/ns/vhs/ViewHelpers";
|      xmlns:f="http://typo3.org/ns/fluid/ViewHelpers";>
|
|     <f:section name="Configuration">
|       :


bernd
--
http://www.pi-phi.de/cheatsheet.html
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an