login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Value in multi array wijzigen

Offline Ultimatum - 24/02/2009 10:17 (laatste wijziging 24/02/2009 10:25)
Avatar van UltimatumPHP expert Ok, ik moet een waarde in een xml bestand wijzigen dus ik dacht, ik zet alles om in een array en dan wijzig ik de value en dan zet ik alles weer om naar xml. Dit gedeelte werkt ook prima maar het probleem is, ik kan niet bij de key om de value te wijzigen. Op pastebin staat de array. Het komt dat hij zo groot is omdat alle attributen enzo ook in een array staan. Ik moet de waarde van een w:bookmarkStart wijzigen (staan een stuk of 8 erin). Ik moet dan de goeie hebben aan de hand van de key die in de array attributes staat, en als ik die heb moet ik dus naar die parent om vervolgens daar weer een key te wijzigen. Weet iemand hoe ik dit kan aanpakken.

http://pastebin.be/16867

Of is het makkelijker om een waarde in een xml bestand te wijzigen, zoja hoe dan?

Ik zie net dat er maar 700 regels van de 2800 op pastebin staan, plaatscode geeft Maximum execution time of 30 error 

4 antwoorden

Gesponsorde links
Offline avdg - 24/02/2009 14:14
Avatar van avdg PHP gevorderde Sorry dat ik niet veel weet over xml parsers, maar ik gebruik Zend_Config van ZF bij configuratiebestanden van ini, xml en (het schrijven van) arrays. Helaas is dat wel object-georiënteerd 

Als je juist deze bestanden wilt van ZF haal dan het bestand config.php en de nodige bestanden in de /config map in de zend ZF trunk (ik raad je voor dit probleem aan om /config/xml.php, /config/writer.php en /config/writer/xml.php te downloaden). Zet ze dan allemaal in de map ZF en include dan de nodige bestanden in jouw code. Voeg ook deze code bovenaan je code toe:
  1. set_include_path(get_include_path() . PATH_SEPARATOR . 'path/to/ZF');



voorbeeld om je xml op te halen (indien het toch nodig is)
  1. $config = new Zend_Confg_Xml('config.xml', {section}, {allowModifications});
  2. //{section}: een optionele parameter met als waarde null of een onderdeel van je xml
  3. //{allowModifications}): standaard false, bij true laat de class wijzigingen toe aan de instellingen,
  4. //Het is ook een optionele parameter (duh :D) en we we hebben
  5. //niet nodig omdat we dit later toch omzetten in een array
  6.  
  7. $xml = $config->toArray();
  8. //Hier krijgen we de array

include_once: Zend/Config.php en Zend/config/Xml.php

Voorbeeld om je xml terug te maken:
  1. $writer = new Zend_Config_Writer_xml;
  2. $writer->write($filename, $config, $exclusivelock)
  3. //$filename: bestemming (pad naar map moet bestaan, bestand mag bestaan)
  4. //$config: een ZF config object
  5. //$exclusivelock: optioneel, en ik zou dat niet wijzigen ook :)

include_once: Zend/Config/Writer.php en Zend/Config/Writer/Xml.php

Zeg mij als er een fout instaat of indien je meer info wilt.
Als je deze oplossing niet ziet zitten mag je dan van mij part links laten. 
Offline Ultimatum - 24/02/2009 14:36
Avatar van Ultimatum PHP expert Ik begrijp het niet helemaal, want ik zie nu in jouw post alleen maar om xml naar array om te zetten en dat lukt me al. Ik moet dus echt een value uit die grote array wijzigen.

Of bedoel jij nu een value in een xml bestand wijzigen?
Offline avdg - 24/02/2009 14:54 (laatste wijziging 24/02/2009 15:04)
Avatar van avdg PHP gevorderde ik ging er vanuit dat het niet lukte om de xml om te vormen/te schrijven en dat de rest zelf kon doen

 met de hand is het probleem in 5 min verholpen, indien je meer variabele gegevens gebruikt raad ik je liever aan om bv. een database te gebruiken (tenzij je dat uiteraard niet ziet zitten)

Edit: ok, ik stop 
Offline Ultimatum - 24/02/2009 14:58
Avatar van Ultimatum PHP expert In mijn beginpost had ik duidelijk vermeld dat ik xml naar de array had omgezet. En als ik dit handmatig wilde gaan doen dan zou ik een html site gaan maken want dan is php beetje onzin.

En waarom gelijk overstappen op een database als ik meer variabelen heb, dit is iets dat on fly moet gebeuren.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.236s