simplexml xpath read-only?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java developer

Als Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze klanten. Geen werkdag is hetzelfde, je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfskritische systemen. Een voorbeeld hiervan is een cliënt-volgsysteem bij Reclassering Nederland. Andere klanten waar wij onder andere voor werken: KPN, Philips, Nationale-Nederlanden, Kamer van Koophandel, ABN AMRO, Bovemij, Arval en de Politie. Werken bij Sogeti Nieuwe ontwikkelingen volgen we op de voet en delen we binnen de

Bekijk vacature »

Back End Developer

Als Back End developer bij KUBUS houd je je bezig met het ontwikkelen van de (web)applicatie en services van BIMcollab. Je hebt een focus op de back end van onze software, daarvoor werken wij hoofdzakelijk met C# en .NET. Wij hanteren een full-stack benadering, wat betekent dat je naast de back-end ook meehelpt bij andere onderdelen van de code. Als softwarebedrijf bevindt KUBUS zich in een unieke positie. We bouwen aan onze eigen producten die wereldwijd door tienduizenden gebruikers worden gebruikt. Ons bedrijf heeft precies de juiste grootte: groot genoeg om echt impact te maken in de markt, maar klein

Bekijk vacature »

Senior PHP developer

Functie Jouw werkzaamheden zullen grotendeels bestaan uit het in teamverband ontwerpen, vernieuwen en door ontwikkelen van het systeem. Het is echt back-end werk (bijvoorbeeld het doorontwikkelen van een API) en dit moet je dan ook liggen. Ze zijn niet persee gebonden aan talen of tools maar gebruiken graag de technieken die het beste aansluiten op de gegeven oplossing. Voor nieuwe (versies van) componenten maken ze veelal gebruik van Go(lang). Bij aanpassingen aan bestaande onderdelen gebeurt dit in PHP en C++. Het team is heel divers, er hangt een relaxte sfeer en ze organiseren regelmatig leuke music nights, game nights e.d.

Bekijk vacature »

Full stack Python developer

Functie Samen met andere collega’s (een product owner, een software manager en een ervaren ontwikkelaar) ga jij onze producten verder ontwikkelen. Jouw verantwoordelijkheden zullen bestaan uit: – Verder wil gaan met de ontwikkeling van onze bestaande producten; nieuwe features! – Meedenkt over de roadmap van onze producten – Als sparringpartner kan optreden op het gebied van development – Zelf ook nieuwe ideeën op tafel durft te leggen en deze van scratch af aan wilt bouwen Hieronder ook een paar voorbeelden van projecten waar we momenteel mee bezig zijn of binnenkort aan willen beginnen: – Real-time interactie creëren in onze web

Bekijk vacature »

Grafisch vormgever

Standplaats: Maasland Aantal uren: 32 – 40 uur per week Opleidingsniveau: HBO werk- en denkniveau Ben jij een ambitieuze grafisch vormgever met een passie voor creativiteit en oog voor detail? Vind jij het daarnaast leuk om ook marketingactiviteiten op te pakken? Dan zijn wij op zoek naar jou! Bedrijfsinformatie Westacc Group BV is het zusterbedrijf van HABA en specialiseert zich in (maatwerk) oplossingen voor (elektro) techniek en verlichting in de kampeerbranche. Zij produceren en assembleren onderdelen voor caravans, campers en boten. Voor een groot aantal caravan- en campermerken leveren wij producten als zekeringkasten, invoerdozen, acculaders, schakelmateriaal en verlichting. De producten

Bekijk vacature »

Web Developer

Bedrijfsomschrijving ENGIE Nederland is onderdeel van de beursgenoteerde ENGIE Groep. ENGIE is actief in 70 landen, met wereldwijd 150.000 medewerkers. Als groep is het de missie om bij te dragen aan de verduurzaming van de wereld. ENGIE Energie biedt energiediensten aan particulieren en grootzakelijk en gaat de uitdagingen van de energietransitie aan door het beschikbaar maken van duurzame energie, het streven de klimaatverandering tot een minimum te beperken, leveringszekerheid te bieden en zorg te dragen voor een verantwoord gebruik van de beschikbare resources. ENGIE Energie investeert daarom in hernieuwbare energiebronnen zoals zon, wind en bio-gas. Functieomschrijving Heb jij veel ervaring

Bekijk vacature »

.NET Developer

Functie omschrijving Ben jij een senior .NET developer en heb jij tevens ervaring als teamlead? Ben jij iemand met een helikopterview en denk jij graag mee met de klanten? Dan zijn wij op zoek naar jou! Voor een geweldig bedrijf zijn wij namelijk op zoek naar een ervaren .NET developer. Het bedrijf houdt zich bezig met het ontwerpen en bouwen van websites, portalen en applicaties voor met name zorg- en onderwijsinstellingen en overheidsinstanties. Jouw taken: Het fungeren als Lead Developer; Het meedenken met de business (dit vergt commercieel inzicht); Het begeleiden van diverse projecten (van klein tot groot); Het ontwerpen

Bekijk vacature »

Medior .NET Ontwikkelaar

In het kort Als .NET ontwikkelaar ga je binnen onze business unit Transport en Logistiek aan de slag complexe maatwerk software voor bedrijf kritische systemen binnen de technische automatisering. Denk bijvoorbeeld een IoT-oplossing voor de logistieke sector waarbij we van ruim 200.000 machines de telemetrie en events verwerken. We zijn actief in de distributielogistiek, havenlogistiek en productielogistiek. Naast C# en .NET Core maken we ook gebruik van Azure technologie. En als trotse Microsoft Gold Partner leren we graag van en met jou. Wil jij jezelf blijven ontwikkelen binnen de technische automatisering met .NET, dan gaan we deze uitdaging graag met

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus 2023 bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Full stack .NET developer Microsoft 365

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Back-end Developer Java

Dit ga je doen Het (door)ontwikkelen van een zelfgebouwde applicatie in Java, Spring Framework, SQL, HTML, CSS en Javascript; End-to-end beheer m.b.t. de applicatie en koppelen van applicaties binnen het landschap; Ontwikkelen van rapportages voor de interne organisatie; Ontwikkelen van aanvullende functionaliteiten m.b.t. de applicatie; Uitvoeren van testen en code reviews. Hier ga je werken Binnen deze organisatie kom je te werken op de afdeling die medische gegevens verzamelt vanuit het hele land. Denk hierbij aan vertrouwelijke persoonsgegevens. Het team verwerkt al deze data met als doel het waarborgen en verbeteren van de kwaliteit van de zorg in heel Nederland.

Bekijk vacature »

Junior Low-code ontwikkelaar gezocht omgeving Arnh

Bedrijfsomschrijving Wij zijn een dynamisch IT-bedrijf dat zich richt op het stroomlijnen van bedrijfsprocessen en het creëren van ondersteunende applicaties. Onze kracht ligt in het combineren van zakelijk inzicht met IT-expertise via gestroomlijnde procesontwerpen en wendbare applicatieontwikkeling met behulp van Low-code technologieën. Als jonge professional krijg je de kans om samen te werken met een team van 15 deskundige collega's, verspreid over nationale en internationale locaties. We bieden je een leerzame omgeving waar je je vaardigheden kunt ontwikkelen en groeien in je rol als Low-code ontwikkelaar. Word jij onze nieuwe Junior Low-code Ontwikkelaar (OutSystems)? Versterk ons team en draag bij

Bekijk vacature »

Senior Java Ontwikkelaar

Dit ga je doen Werken aan uiteenlopende interne projecten voor grote (internationale) organisaties; Ontwikkelen van diverse (web)applicaties en platformen met technieken als Java, Azure en ASP.NET; Complexe vraagstukken tackelen met jouw expertise en ervaring; Waar nodig help jij je collega's om samen tot de juiste oplossing te komen. Hier ga je werken Als Java Developer kom je te werken bij een internationale organisatie in regio Amsterdam die zich richt op procesoptimalisatie door middel van zeer complexe IT oplossingen. Dit doen zij op het allerhoogste niveau met vestigingen over heel de wereld en met een groot aantal aansprekende, maatschappelijk betrokken klanten.

Bekijk vacature »

PHP Software Developer

Functie omschrijving Op zoek naar een nieuwe uitdaging binnen PHP? Lees dan snel verder! Wij zoeken een ervaren PHP developer die binnen een organisatie gaat functioneren als verlengstuk van de klant. Wij zoeken voor deze iemand die technisch complexe zaken met enthousiasme en plezier aanvliegt. Verder moet je instaat zijn om je tijd goed te managen omdat je aan meerdere projecten tegelijkertijd werkt. Je werkt met de nieuwste technieken en tijdens deze uitdaging werk je veel samen met de front-end developers van deze organisatie. Wij zoeken iemand die zichzelf graag uitdaagt en altijd de beste wilt zijn. Bedrijfsprofiel Waar ga

Bekijk vacature »
Pepijn de vos

pepijn de vos

02/12/2008 18:49:00
Quote Anchor link
hoi,

dit is het verhaal: ik ben en plugin aan het maken voor whatever met een config dingetje in een xml bestand.
nu ben ik bezig daar een admin pagina voor te maken, bij he terug schrijven gebruik ik $item = $idealxml->xpath($path); om vervolgens de juiste waarde in $item te stoppen.

mijn erste gedachte was dat al dat simple xml spul by refference gaat, dus dat ik zo in item kan schrijven... blijkbaar niet, of ik doe iets fout.
en als ik iets probeer als $idealxml->xpath($path) = $value; krijg ik een error met PHP "Can’t use method return value in write context"

dit is ene klein stukje code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
foreach($_POST as $id => $value) {
    $item = explode('#', $id);
    $item[0] = explode('_', $item[0]);
    $path = '//'.$item[0][0].'['.(isset($item[1]) ? $item[1] : 1).']/'.$item[0][1];
    $item = $xml->xpath($path);
    $item = $value;
}

echo "<pre>";
echo htmlentities($xml->asXML()); // dit is dus de oude xml, zonder de veranderingen hierboven
echo "</pre>";
?>


in post zitten dingen in de vorm van item_name#3 die dus corresponderen met bijvoorbeeld dit element:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<xml>
    <item><name>deze niet...</name></item>
    <item><name>deze niet...</name></item>
    <item><name>deze wel, omdat dit nummer 3 is... xpath schijnt niet zero based te zijn</name></item>
    <item><name>deze niet...</name></item>
</xml>
Gewijzigd op 01/01/1970 01:00:00 door Pepijn de vos
 
PHP hulp

PHP hulp

05/05/2024 11:53:20
 
Pepijn de vos

pepijn de vos

03/12/2008 19:23:00
Quote Anchor link
bump...

ik zit hier met een admin die niks doet :S
heeft verder geen super haast ofzo, ik kan nu gewoon in de xml rommelen, maar niet elke noob snapt dat ;)

de vraag samengevat is dus:
hoe kan ik een node uit een xml bestand halen door middel van xpath en vervolgens de waarde aanpassen en terug schrijven naar het xml bestand.
 
Pepijn de vos

pepijn de vos

10/12/2008 20:06:00
Quote Anchor link
mag ik al wanhopig worden?
't duurt me nu een beetje lang.

werkt hier niemand met xml dat ik geen antwoord krijg, of wat is het probleem?
verkeerde topic titel?
slechte uitleg?
of weet niemand het antwoord?

als ik zo iets doe als dit: $xml->a->b = "iets" werkt dat gewoon.
als ik $temp = $xml->a->b doe, en vervolgens $temp = "iets" dan werkt dat wel als de referentie van $xml er in zit, maar niet als het de waarde is.

ik weet dat ik niet naar een return value kan schrijven, en ik weet ook vrij zeker dat het bij simplexml om een referentie naar het xml object gaat, daarom moet je ook altijd die dingen als string casten.
maar als ik dus de return value in een var stop en daar naar schrijf, waarom is het resultaat dan niet bijgewerkt?
of moet ik nog iets doen met =& om echt de referentie te bewerken?

Edit:

http://nl2.php.net/manual/en/function.simplexml-element-xpath.php#56120
zie je wel, referenties... wat doe ik nou fout?
Gewijzigd op 01/01/1970 01:00:00 door pepijn de vos
 
M Ypma

M Ypma

10/12/2008 20:14:00
Quote Anchor link
Quote:
als ik $temp = $xml->a->b doe, en vervolgens $temp = "iets" dan werkt dat wel als de referentie van $xml er in zit, maar niet als het de waarde is.

Kan je daar een werkend voorbeeld van geven? Dit mag ook niet werken, ookal zit er een instantie vam simplexml in, hij zal die instantie gewoon weggooien en vervangen door je string die je nu aan de variabele toewijst.
Tevens snap ik je probleem niet. Waarom wil je het eerst in een losse variabele zetten en vervolgens de waarde aanpassen? Dat is toch erg onoverzichtelijk en lelijk?
Ik kan me je probleem niet voorstellen. Ik gebruik het ook af en toe, simplexml is slecht gedocumenteerd, maar heb er nooit problemen mee.
Gewijzigd op 01/01/1970 01:00:00 door M Ypma
 
Arian Stolwijk

Arian Stolwijk

10/12/2008 22:34:00
Quote Anchor link
Ja... eerst maak je een variable aan, ...->xpath() geeft trouwens een array met nodes terug... daarna ga je in die variabele iets anders zetten.

Je moet juist op zoek gaan naar een property van een van de nodes die in de array zit, die je terug kreeg van ...->xpath(), waarmee je de waarde van die node aan kunt passen.

Iets als

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php

$item
= $xml->xpath($path);
$item[0]->textContent = 'iets';

?>


de property textContent verzin ik nu even, omdat dat een property is van DomNode, maar zoiets moet het zijn. Een tijdje terug heb ik hier naar gezocht voor een simpleXMLELement, maar kon het niet vinden...

Wat je kunt doen is het simpleXMLElement omzetten naar een DomElement(/Node/Document (weet niet precies)) en het zo aanpassen en dan weer terug. Maar dat is natuurlijk heel omslachtig...
 
Pepijn de vos

pepijn de vos

13/12/2008 13:58:00
Quote Anchor link
ik heb het al, als je $item[0][0] doet werkt het!!! die laatste is dus voor de textcontent.

het heeft even geduurd, maar bedankt voor de info.
nu kan ik weer verder...
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.