SimpleXML

20/12/2012 - 15:26 von Stefan+Usenet | Report spam
Gegeben sind:

| <FOO>
| <REMARK type="general">bar</REMARK>
| <REMARK type="other">baz</REMARK>
| </FOO>

und

| foreach ($foo->REMARK as $remark) {
| var_dump($remark->attributes());
| var_dump((string)$remark['type']);
| echo "";
| }

$foo enthaelt dabei die SimpleXML-Struktur des oben angegebenen Files.
Verblueffenderweise bekomme ich als Ausgabe:

| object(SimpleXMLElement)#758 (1) {
| ["@attributes"]=>
| array(1) {
| ["type"]=>
| string(7) "general"
| }
| }
| string(0) ""
|
| object(SimpleXMLElement)#752 (1) {
| ["@attributes"]=>
| array(1) {
| ["type"]=>
| string(5) "other"
| }
| }
| string(0) ""

Die beiden Attribute sind also durchaus korrekt geparsed worden, bloss
kann ich nicht so auf sie zugreifen, wie ich das meiner Erinnerung nach
bislang getan habe, und wie es auch im Beispiel #5 auf
<http://php.net/manual/de/simplexml....ic.php> nahegelegt wird.

Anstatt $remark['type'] eine foreach()-Schleife ueber $remark->attributes()
zu schreiben, erscheint mir reichlich unelegant. Irgendwo muss ich wieder
einmal ein Brett vor dem Kopf haben, aber nachdem auch das Schreiben dieses
Postings nicht die rettende Erkenntnis gebracht hat, hoffe ich auf externe
Erleuchtung.

Servus,
Stefan

http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Seeligkeit und Vergnügen. Mit Stefan. Ein altes Vergnügen!
(Sloganizer)
 

Lesen sie die antworten

#1 Thomas PointedEars Lahn
20/12/2012 - 17:26 | Warnen spam
Stefan Froehlich wrote:

Gegeben sind:

| <FOO>
| <REMARK type="general">bar</REMARK>
| <REMARK type="other">baz</REMARK>
| </FOO>

und

| foreach ($foo->REMARK as $remark) {
| var_dump($remark->attributes());
| var_dump((string)$remark['type']);
| echo "";
| }

$foo enthaelt dabei die SimpleXML-Struktur des oben angegebenen Files.
Verblueffenderweise bekomme ich als Ausgabe:

| object(SimpleXMLElement)#758 (1) {
| ["@attributes"]=>
| array(1) {
| ["type"]=>
| string(7) "general"
| }
| }
| string(0) ""
|
| object(SimpleXMLElement)#752 (1) {
| ["@attributes"]=>
| array(1) {
| ["type"]=>
| string(5) "other"
| }
| }
| string(0) ""



Das nàchste Mal bitte ohne Zitatzeichen, die man zum Testen erst rausbasteln
muss. Absatz/Einrückung genügt.

Die beiden Attribute sind also durchaus korrekt geparsed worden, bloss
kann ich nicht so auf sie zugreifen, wie ich das meiner Erinnerung nach
bislang getan habe, und wie es auch im Beispiel #5 auf
<http://php.net/manual/de/simplexml....ic.php> nahegelegt wird.

Anstatt $remark['type'] eine foreach()-Schleife ueber
$remark->attributes() zu schreiben, erscheint mir reichlich unelegant.
Irgendwo muss ich wieder einmal ein Brett vor dem Kopf haben, aber nachdem
auch das Schreiben dieses Postings nicht die rettende Erkenntnis gebracht
hat, hoffe ich auf externe Erleuchtung.



(string) $remark->attributes()->type

<http://php.net/manual/en/simplexmle...es.php>

PointedEars

Twitter: @PointedEars2
Please do not Cc: me. / Bitte keine Kopien per E-Mail.

Ähnliche fragen