| | | | |
| | ||
| Benutzer Registriert seit: 26.07.2005
Beiträge: 82
![]() | hi zuerst einmal nehm ich den fleißigen poster die arbeit ab: Zitat:
so bitte erspart mir jetzt tutorial-posts.... naja...zum problem beispiel code: Code: <?xml version="1.0"?> <map width="1000" height="1000" templex="0" templey="0" templez="0"> <tile x="209" y="267" z="6"> <item id="1198"/> </tile> <tile x="219" y="267" z="6"> <item id="1198"/> </tile> <tile x="230" y="267" z="6"> <item id="1198"/> </tile> <tile x="208" y="268" z="6"> <item id="1198"/> </tile> <tile x="209" y="268" z="6"> <item id="1202"/> </tile> <tile x="213" y="268" z="6"> <item id="1199"/> </tile> <tile x="218" y="268" z="6"> <item id="1198"/> </tile> <tile x="219" y="268" z="6"> <item id="1202"/> </tile> das geht nach unten noch seitenweise weiter... (28MB -.-) leider stimmen alle x="" und y="" nicht... jetzt müsste jeder x="" und y="" wert um 100 erhöht werden... und das ihr nicht sagts, ich habs nicht versucht... das funktioniert einmal... siehe code oben, 2. zeile: <map width="1000" ....... 1000 wird angezeigt... PHP-Code: lg btw und bitte keine "schau ins forum" oder "mach selbst" oder "lern xml" oder sonst irgendwelche weisheitsbeiträge | |
| |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | ||
| Benutzer Registriert seit: 26.07.2005
Beiträge: 82
![]() | ich habs (teilweise) geschafft: bei der PHP 5.1 gibs einen xml writer: PHP-Code: also: das 1. foreach geht alles <tile x="" y="" z="" ..... durch Code: $x = $item['x']; $y = $item['y']; $z = $item['z']; $pz = $item['pz']; $ground = $item['ground']; Zitat:
Hier ist das Problem: Code: foreach($mainfile->xpath('map/tile/item') as $newitem) {
$id = $item['id'];
xmlwriter_start_element($xmlwr, "item");
xmlwriter_write_attribute($xmlwr, "id", "$id");
xmlwriter_end_element($xmlwr);
}
Manche Tiles sehen so aus: <tile x="230" y="267" z="6"> <item id="1198"/> <item id="1198"/> <item id="1198"/> </tile> ich bräuchte eine foreach in einer foreach schleife... zuerst soll jedes tile neu gemacht werden... und in einem tile dann noch die zusätzlichen <item id="">.... lg | |
| |
| | |||
| Gast
Beiträge: n/a
| Zitat:
foreach($map as $tile) bspw funktioniert hier auch. Und das hättest Du sogar wissen können Zitat:
| ||
| | ||
| Benutzer Registriert seit: 26.07.2005
Beiträge: 82
![]() | moment.... das versteh ich jetzt net ganz -.- ich hab ein foreach script für die 1000 <tile>-tags gmacht: Zitat:
<tile x="" y="" z="" pz="" ground=""> <item id=""/> <item id=""/> <item id=""/> <item id=""/> <item id=""/> <item id=""/> <item id=""/> </tile> und von denen gibs mindestens 1000 die obere foreach schleife ist für alle <tile>-tags ---> xpath('/map/tile') aber in jedem tile-tag sind nochmal bis zu 10 <item>-tags... es können ja mehrere items auf einen feld liegn... btw... damit hab ich es versucht ... (geht net): ---> xpath('/map/tile/item') ich hab leider kA wie man das Problem lösen könnte lg | |
| |
| | |
| Gast
Beiträge: n/a
| Ah, jetzt verstehe ich Dein Problem. Du kannst das Datenmodell einfach ändern und dann wieder komplett in eine XML Zeichenkette umwandeln lassen. Aber dann nimmst Du besser gleich DOM (und nicht SimpleXML) PHP-Code: |
| | |
| Erfahrener Benutzer Registriert seit: 15.08.2004
Beiträge: 2.473
![]() | Ähm, das ist das einzige, was da drin steht? Und das erhöhen um 100 ist die einzige Aufgabe? Dann würd ich das ganze per Regex machen: $new_file_content = preg_replace("{\b(x|y)=\"(\d+)\"}e",'"\\1=\\"".(\\ 2+100)."\\""',$old_file_content); |
| |
| | |
| Benutzer Registriert seit: 26.07.2005
Beiträge: 82
![]() | PHP-Code: PHP-Code: lg |
| |
| Themen-Optionen | |
| Thema bewerten | |
|
|
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| xmlwriter_write_attribute, foreach seitenweise xml datei, xmlwriter_write_attribute yymmdd, xml mit php mappen, otx-datenmodell, xml schreiben mit dom php, mapping xml to php, simplexml_load_file seitenweise anzeigen, php domxpath getattributenode, php getattributenode example, php?id=82 probleme in xml |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.