Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.php > #4323 > unrolled thread
| Started by | Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) |
|---|---|
| First post | 2018-03-24 16:58 +0000 |
| Last post | 2018-03-25 15:49 +0000 |
| Articles | 7 — 4 participants |
Back to article view | Back to de.comp.lang.php
SimpleXML und Whitespace Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2018-03-24 16:58 +0000
Re: SimpleXML und Whitespace Niels Braczek <nbraczek@bsds.de> - 2018-03-24 20:25 +0100
Re: SimpleXML und Whitespace Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2018-03-27 19:26 +0200
Re: SimpleXML und Whitespace Niels Braczek <nbraczek@bsds.de> - 2018-03-27 20:33 +0200
Re: SimpleXML und Whitespace Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2018-03-28 06:15 +0000
Re: SimpleXML und Whitespace "Christoph M. Becker" <cmbecker69@arcor.de> - 2018-03-24 22:57 +0100
Re: SimpleXML und Whitespace Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2018-03-25 15:49 +0000
| From | Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) |
|---|---|
| Date | 2018-03-24 16:58 +0000 |
| Subject | SimpleXML und Whitespace |
| Message-ID | <1t5ab68211i5884n3e8%sfroehli@Froehlich.Priv.at> |
Jemand schickt XML-Dateien, die lustige Daten enthalten, z.B.
"<MATNR>2694203021000 1</MATNR>", und der Urheber des Feldinhalts
steht auf dem Standpunkt, die Zahl der Leerzeichen wäre signifikant
(was bereits an diesem Punkt ein Problem ist, aber keines, das ich
ändern kann). SimpleXML wiederum ist - korrekterweise - der Ansicht,
dass diese Whitespaces zu kollabieren wären. Ein simples
xml:space="preserve" im obersten Tag der Datei könnte Abhilfe
schaffen, aber der Ersteller der Datei möchte oder kann dieses
Attribut nicht ergänzen.
In einem Anfall von Eigeninitiative habe ich daher in meiner
Software:
#v+
$xml->IDOC->addAttribute('xml:space', 'preserve', 'xml');
#v-
...ergänzt, und siehe da: mit $xml->getXML() bekomme ich nun
wie erwartet das Attribut ausgegeben. Alleine, es hilft nichts, da
die Whitespaces zu diesem Zeitpunkt offenbar bereits entfernt
wurden...
Komme ich denn *irgendwie* an die originalen Nutzdaten, ohne a) an
der Datei vor dem Einlesen etwas ändern zu müssen oder b) auf
SimpleXML zu verzichten?
Servus,
Stefan
--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike
Dein Traum vom Glück - Stefan: monieren, welch verwundetes Erwarten!
(Sloganizer)
[toc] | [next] | [standalone]
| From | Niels Braczek <nbraczek@bsds.de> |
|---|---|
| Date | 2018-03-24 20:25 +0100 |
| Message-ID | <p968o3$c31$1@news.albasani.net> |
| In reply to | #4323 |
Am 24.03.2018 um 17:58 schrieb Stefan Froehlich: > "<MATNR>2694203021000 1</MATNR>" > [...] > Komme ich denn *irgendwie* an die originalen Nutzdaten, ohne a) an > der Datei vor dem Einlesen etwas ändern zu müssen oder b) auf > SimpleXML zu verzichten? Wohl nicht. Das XML ist einfach kaputt. Ich würde einfach einen Suchen/Ersetzen-Durchlauf machen: s/<MATNR>/<MATNR><![CDATA[/ s/</MATNR>/]]></MATNR>/ Das sollte schnell gehen und das Problem so weit lösen. MfG Niels -- | New Stars on the Horizon: GreenCape · nibralab · laJoom | | http://www.bsds.de · BSDS Braczek Software- und DatenSysteme | | Webdesign · Webhosting · e-Commerce · Joomla! Content Management | ------------------------------------------------------------------
[toc] | [prev] | [next] | [standalone]
| From | Thomas 'PointedEars' Lahn <PointedEars@web.de> |
|---|---|
| Date | 2018-03-27 19:26 +0200 |
| Message-ID | <2068336.ElGaqSPkdT@PointedEars.de> |
| In reply to | #4324 |
Niels Braczek wrote:
> Ich würde einfach einen Suchen/Ersetzen-Durchlauf machen:
>
> s/<MATNR>/<MATNR><![CDATA[/
> s/</MATNR>/]]></MATNR>/
^ ^ muss escaped werden
> Das sollte schnell gehen und das Problem so weit lösen.
Abgesehen davon vertragen sich reguläre Ausdrücke nicht gut mit
nicht-regulären Sprachen wie XML.
--
PointedEars
Zend Certified PHP Engineer <http://www.zend.com/en/yellow-pages/ZEND024953>
<https://github.com/PointedEars> | <http://PointedEars.de/wsvn>
Twitter: @PointedEars2 | Please do not cc me./Bitte keine Kopien per E-Mail.
[toc] | [prev] | [next] | [standalone]
| From | Niels Braczek <nbraczek@bsds.de> |
|---|---|
| Date | 2018-03-27 20:33 +0200 |
| Message-ID | <p9e2qo$t30$1@news.albasani.net> |
| In reply to | #4327 |
Am 27.03.2018 um 19:26 schrieb Thomas 'PointedEars' Lahn: > Niels Braczek wrote: >> >> s/<MATNR>/<MATNR><![CDATA[/ >> s/</MATNR>/]]></MATNR>/ > ^ ^ muss escaped werden Das ist natürlich richtig, habe ich übersehen, > Abgesehen davon vertragen sich reguläre Ausdrücke nicht gut mit > nicht-regulären Sprachen wie XML. Auf Reguläre Ausdrücke wollte ich gar nicht hinaus. Im gegeben Fall reicht eine einfache Zeichenketten-Operation. Falls die 's///'-Syntax RegExp impliziert haben sollte, war das nicht beabsichtigt. MfG Niels -- | New Stars on the Horizon: GreenCape · nibralab · laJoom | | http://www.bsds.de · BSDS Braczek Software- und DatenSysteme | | Webdesign · Webhosting · e-Commerce · Joomla! Content Management | ------------------------------------------------------------------
[toc] | [prev] | [next] | [standalone]
| From | Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) |
|---|---|
| Date | 2018-03-28 06:15 +0000 |
| Message-ID | <1t5abb32a0i43f3n3e8%sfroehli@Froehlich.Priv.at> |
| In reply to | #4328 |
On Tue, 27 Mar 2018 20:33:59 Niels Braczek wrote: > > Abgesehen davon vertragen sich reguläre Ausdrücke nicht gut mit > > nicht-regulären Sprachen wie XML. > Auf Reguläre Ausdrücke wollte ich gar nicht hinaus. Im gegeben Fall > reicht eine einfache Zeichenketten-Operation. Falls die 's///'-Syntax > RegExp impliziert haben sollte, war das nicht beabsichtigt. Für den konkreten Anwendungsfall hätte vermutlich jede Art von suchen/ersetzen ausgereicht, weil <MATNR> in den fraglichen Dokumenten hinreichend eindeutig ist. Da die Verarbeitung aber (wenigstens theoretisch) formatunabhängig erfolgt, war das hier keine echte Option. Servus, Stefan -- http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich Offizieller Erstbesucher(TM) von mmeike Froh bleibt froh: Trotz Stefan! (Sloganizer)
[toc] | [prev] | [next] | [standalone]
| From | "Christoph M. Becker" <cmbecker69@arcor.de> |
|---|---|
| Date | 2018-03-24 22:57 +0100 |
| Message-ID | <p96hk0$q4$1@solani.org> |
| In reply to | #4323 |
Am 24.03.2018 um 17:58 schrieb Stefan Froehlich: > Jemand schickt XML-Dateien, die lustige Daten enthalten, z.B. > "<MATNR>2694203021000 1</MATNR>", und der Urheber des Feldinhalts > steht auf dem Standpunkt, die Zahl der Leerzeichen wäre signifikant > (was bereits an diesem Punkt ein Problem ist, aber keines, das ich > ändern kann). SimpleXML wiederum ist - korrekterweise - der Ansicht, > dass diese Whitespaces zu kollabieren wären. Ein simples > xml:space="preserve" im obersten Tag der Datei könnte Abhilfe > schaffen, aber der Ersteller der Datei möchte oder kann dieses > Attribut nicht ergänzen. > > Komme ich denn *irgendwie* an die originalen Nutzdaten, ohne a) an > der Datei vor dem Einlesen etwas ändern zu müssen oder b) auf > SimpleXML zu verzichten? Vielleicht geht das, wenn du das Dokument per DOM einliest, und dann das SimpleXMLElement vom DOMNode importierst. -- Christoph M. Becker
[toc] | [prev] | [next] | [standalone]
| From | Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) |
|---|---|
| Date | 2018-03-25 15:49 +0000 |
| Message-ID | <1t5ab7c4a6i2b14n3e8%sfroehli@Froehlich.Priv.at> |
| In reply to | #4325 |
On Sat, 24 Mar 2018 22:57:24 Christoph M. Becker wrote: > Vielleicht geht das, wenn du das Dokument per DOM einliest, und dann das > SimpleXMLElement vom DOMNode importierst. Ich habe die Verarbeitung jetzt komplett auf DOMNode umgestellt (dort leistet das Attribut "preserveWhiteSpace" gute Dienste). War zwar ein bisschen mehr Arbeit, als ich wollte, aber dafür ist das Ergebnis nicht 3x ums Eck gedacht. Servus, Stefan -- http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich Offizieller Erstbesucher(TM) von mmeike Für Anfänger: Stefan - ferkeln, wenn sie mal wieder mieß drauf sind! (Sloganizer)
[toc] | [prev] | [standalone]
Back to top | Article view | de.comp.lang.php
csiph-web