simpleXml xml:lang

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C# developer

Functie omschrijving We are looking for a dutch native speaker Ik ben op zoek naar een back-end developer, die met name kennis & ervaring heeft van de programmeertaal C#. Jij gaat aan de slag bij een topspeler in de logistieke sector, die zich behalve met logistiek, ook bezig houdt met softwareontwikkeling. Welke taken komen hierbij kijken? Je gaat desktop- en webapplicaties onderhouden en optimaliseren, waarin je werkt met o.a. C#, ASP.NET, SQL Server en T-SQL. Je hebt regelmatig klantcontact om de wensen in kaart te brengen en te evalueren over de huidige draaiende applicaties. Je implementeert nieuwe functionaliteiten toe aan

Bekijk vacature »

Software Ontwikkelaar

Functieomschrijving In deze uitdagende functie als Software Developer ga je de volgende taken uitvoeren: Maatwerk back-end software programmeren; API koppelingen bouwen; Software optimaliseren voor klanten; Bouwen maatwerk applicaties; Werken met Microsoft stack zoals C#, .NET (Core) en Entity framework; Bedrijfsprofiel Je gaat werken bij een klein softwareontwikkelingsbureau, die maatwerk software bouwt voor klanten door heel Nederland. Dit doen zij al meer dan 20 jaar. Het is van oorsprong een familiebedrijf, opgezet door de eigenaar, die er nog steeds werkt. Het team bestaat vooral uit back-end developers en één systeembeheerder. Je krijgt veel kans om jezelf te ontwikkelen en krijgt tevens

Bekijk vacature »

.NET developer WO niveau voor predictive software

Bedrijfsomschrijving Dit bedrijf uit Den Bosch is om precies te zijn 15 medewerkers groot en ze ontwikkelen (predicitve) planning software. Dit doen zij voor allerlei mooie en bekende organisaties (bierbrouwerijen, gemeentes, oliemaatschappijen en diverse multinationals). Wegens meer en grotere vraag vanuit de klanten komen er nu posities vrij voor onder andere een .NET developer. Het bedrijf is goed met openbaar vervoer te bereiken. Functieomschrijving Je komt hier te werken in een team van 3 .NET developers en bent betrokken bij het gehele ontwikkelproces. Dus van idee naar ontwerp en van ontwikkeling tot testen en implementatie. Bij voorkeur ben je niet

Bekijk vacature »

Belastingdienst - Freelance Applicatieontwikkelaar

Startdatum: 01.06.2023 Richttarief: €65,00 - €75,00 Duur van de opdracht: 6 maanden Uren per week: 36 Taal: Nederlands vereist! Gelieve in het Nederlands te solliciteren. Hybride. Kantoordagen in Utrecht, incidenteel in Apeldoorn Functieomschrijving: De afdeling IV – Generieke Voorzieningen – Interactie Online is onderdeel van de keten Interactie. De missie van de keten is: “het faciliteren van de interactie met alle burgers, bedrijven en hun vertegenwoordigers om hen in staat te stellen aan hun fiscale verplichtingen te voldoen en aanspraak te maken op hun rechten.” De afdeling Interactie Online heeft een belangrijke bijdrage binnen deze keten. Dit door het ontwikkelen

Bekijk vacature »

Java Developer / Sociaal domein

Dit ga je doen Nieuwbouw en doorontwikkeling; Beheer en wanneer nodig onderhoud; Bijdrage leveren in het functioneel- en technisch ontwerptraject; Analyseren van productie verstoringen; Meedenken over vernieuwingen en verbeteringen. Hier ga je werken De organisatie waar jij komt te werken focust zich op software development met een maatschappelijk tintje. De afdeling software ontwikkeling bestaat uit vijf verschillende scrum teams, met allen hun eigen focus gebied. Zo zijn er een aantal teams die zich focussen op specifieke applicaties, maar is er ook een team gericht op projecten. Binnen de organisatie staat innovatie en kwaliteit voorop. Een aantal applicaties draait nog op

Bekijk vacature »

Lead Webdeveloper

As Lead Web Developer at KUBUS you are responsible for the implementation design of requirements and the software architecture of the web application and services of BIMcollab. In your role as lead developer you will naturally search for the optimum between the required implementation time, the performance of the application and a fast go-to-market of features, in line with our automated test and release train. Together with the other senior developers in your team you monitor the architecture of the application and you advise the product owner about necessary refactoring to improve the maintainability of the platform. Our development team

Bekijk vacature »

Full-stack Developer

As a Full-stack developer at KUBUS, you will develop the (web)applications and services of BIMcollab. You will work on both the front- and back-end. As a software company, KUBUS is in a unique position. We build our own products that are used by tens of thousands of users worldwide. Our company is just the right size: big enough to make a real impact in the market, but small enough that as an individual developer you can have an impact and really make a difference. Our development team consists of over 40 developers, testers, scrum masters and product owners, divided over

Bekijk vacature »

Remote - Front-end Angular developer

Functie The IT team currently consists of the IT Manager, 2 back-end developers, 1 full-stack developer, 1 designer, and a DevOps engineer. They are currently looking for an experienced Front-end developer who will work autonomously and in a disciplined manner, being the only developer working on their Front-end applications at the start. They do have the ambition to find a second developer soon, who you will then be able to supervise. You will be working on the further development of their existing UI in Angular. But also developing a mobile app. They place great value on User Experience and opt

Bekijk vacature »

Front-end Angular developer

Functie In jouw rol als Front-End developer werk je samen met de backend developers om middels tweewekelijkse sprints het platform naar een hoger niveau te tillen. Hiernaast heb je affiniteit met data en werk je graag samen met het team om de gegevensintegriteit en -beveiliging te waarborgen, om ervoor te zorgen dat de gebruiker wereldwijd de beste SaaS-services heeft. Deze organisatie heeft meer dan 100 mensen in dienst, waarvan er 45 in Nederland werken. Het ontwikkelteam bestaat uit 10 mensen en is verdeeld in 2 scrumteams. Het eerste team bestaat uit Java en Scala ontwikkelaars. Het tweede team, waar jij

Bekijk vacature »

Embedded Software Developer

Functie omschrijving Voor een mooi softwarebedrijf in omgeving Ridderkerk zijn wij op zoek naar een Embedded Software developer. Ben jij enthousiast en een echte team player? Lees dan snel of dit iets voor jou is! Binnen deze rol houdt jij je bezig met alle werkzaamheden die nodig zijn om een functionaliteit te bouwen. Denk aan ontwerpen, architectuur, programmeren en algoritmes. Je voert test en validatie werkzaamheden uit bij de implementatie bij de klant. Ben jij een Embedded Software Developer die affiniteit heeft met de allernieuwste technieken? Laat dan snel wat van je horen! Bedrijfsprofiel Onze opdrachtgever bestaat uit een groot

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Front-end developer (HTML, CSS, SASS, JavaScript)

Functie Momenteel zijn we voor ons Digital team op zoek naar een (medior) Front-end developer. Samen met je collega’s werk je in een Agile/Scrum omgeving aan de ontwikkeling van onze webapplicaties, websites en andere oplossingen. Je draagt bij aan een sterk ontwikkelproces waarin kwaliteit voorop staat. Hiervoor ben je niet alleen bezig met eigen code maar ook code reviews van andere collega’s. Ben jij graag op de hoogte van de nieuwste ontwikkelingen in je vakgebied en wil je deze toepassen voor diverse projecten? Dan komen wij graag met je in contact! Eisen • HBO werk- en denkniveau • Minimaal 2

Bekijk vacature »

C# .NET Developer

Dit ga je doen Als developer nieuwe gave features implementeren; Werken met technieken als C# .NET en (REST) API's webservices; Ontwikkelen van koppelingen middels API's; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken In een klein team van professionals ben je als C# .NET Developer verantwoordelijk voor het ontwikkelen van één van de applicaties voor het grootste inhouse product: een applicatie voor alles omtrent hypotheken. De programmeertaal die je

Bekijk vacature »

Junior Software Developer

Functie omschrijving Wij zijn op zoek naar een Junior Software Developer .NET, C# voor een gaaf bedrijf in de omgeving van Utrecht! Sta jij aan het begin van je carrière en heb je net je HBO of WO-diploma in de richting van ICT of Techniek mogen ontvangen? En heb jij grote affiniteit met software development? Lees dan snel verder! Voor een opdrachtgever in de omgeving van Utrecht, zijn wij op zoek naar een Junior Software Developer. Werk jij graag aan verschillende projecten en ga je graag klanten op bezoek? Dan is dit de ideale functie voor jou! Binnen deze functie

Bekijk vacature »

Software Developer / .NET / Azure

Dit ga je doen Als Lead .NET Software Developer zal je je bezig houden met: Het vertalen van bedrijfswensen naar een technische roadmap; Uitwerken van nieuwe architectuur / designs; Het team aansturen en motiveren; Toezien op de kwaliteit van de code; Mee ontwikkelen van nieuwe features en applicaties. Hier ga je werken Deze organisatie is op dit momenteel marktleider in het ontwikkelen van productielijnen voor de voedselindustrie en heeft een wereldwijd klantnetwerk. Binnen deze organisatie is het team van software developers dagelijks bezig met het ontwikkelen van maatwerk oplossingen om alle productiemachines aan te sturen, maar ook bedrijf kritische applicaties

Bekijk vacature »
Sven

Sven

27/05/2009 11:46:00
Quote Anchor link
Hey,

Ik weet dat er reeds over attributen en namespaces geschreven is, echter geen enkel toppic lijkt het correcte antwoord te bieden op volgende probleem:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?xml version="1.0" encoding="UTF-8"?>

<page>
<head>
<title xml:lang='en'><![CDATA[Blaap]]></title>
<title xml:lang='nl'><![CDATA[Toot]]></title>
</head>
</page>

Ik laad deze xml file in met simplexml_load_file.

echo $title = $xml->head->title;

zal me altijd 'Blaap' geven.

Hoe kan ik Toot terugkrijgen?

Reeds geprobeerd: namespaces met
$xml = simplexml_load_file($myFile);
$xml->registerXPathNamespace('xml', 'http://www.w3.org/2000/10/XMLSchema');
$title = $xml->head->xpath('/xml:title');

maar het ontglipt me steeds hoe ik te taal kan speciviceren.

Is er iemand die me een hint in de goeie richting kan geven?
Gewijzigd op 01/01/1970 01:00:00 door Sven
 
PHP hulp

PHP hulp

23/11/2024 23:44:25
 

27/05/2009 12:30:00
Quote Anchor link
Dit werkt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$string
= <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<page>
<head>
<title xml:lang='en'><![CDATA[Blaap]]></title>
<title xml:lang='nl'><![CDATA[Toot]]></title>
</head>
</page>
XML
;

$xml = simplexml_load_string($string);
$enresult = $xml->xpath("/page/head/title[@xml:lang='en']");
$nlresult = $xml->xpath("/page/head/title[@xml:lang='nl']");
echo $enresult[0] . PHP_EOL . $nlresult[0];
?>

Maar ik betwijfel het of het wel de netste methode is. Ook betwijfel ik of dat xml bestand wel valid is, aangezien de xml namespace nergens is gedeclareerd.
Gewijzigd op 01/01/1970 01:00:00 door
 
Sven

Sven

27/05/2009 14:17:00
Quote Anchor link
Hey,
dank je voor het snelle antwoord.
Het werkt inderdaat met deze methode, echter niet zo elegant als ik het wou.

Ik plak hier later nog wel een update op dit scrip als ik't wat eleganter krijg.

Ivm je twijfels over de namespace:
ik maak enkel gebruik van de standaard namespace van xml:
http://www.w3.org/XML/1998/namespace

Ik heb de eerste regel zo aangepast:
<page xmlns:lang="http://www.w3.org/2000/10/XMLSchema">

Zowel dit als zonder de namespace uri lukt het om de xml file te valideren.
 

27/05/2009 14:22:00
Quote Anchor link
Ik zie het nu van die namespace, dat kon ik zostraks zo snel niet vinden...
 
Sven

Sven

27/05/2009 16:37:00
Quote Anchor link
np, ben al heel blij met je oplossing.
 
Sven

Sven

29/05/2009 11:16:00
Quote Anchor link
Hey,

Zoals beloofd: een update.

Dankzij heel wat hulp van m'n beste collega jmoe er eindelijk uitgeraakt.

SimpleXML is Simple, maar dus niet om ingewikkelde dingen te doen.
Voor en nadelen?
+ Eenvoudige syntax
+ Eenvoudige funcites
+ gebruik van $xml->node->subnode notatie
- geen (goede) ondersteuning voor attributen
- eens je data in een SimpleXML object steekt is het nog moeilijk aan te passen (binnen dat object)

Conclusie: gebruik DOMelement voor bewerkingen, en laad die dan in in SimpleXML voor gemakkelijk gebruik.


Stukje code?
Om te vermijden dat je steeds op voorhand je path moet kennen (alsook de juiste xpath expressie (vb. [@xml:lang='nl']) in een situatie waaring je een xml als volgt opbouwd:

The XML:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?xml version="1.0" encoding="UTF-8"?>
<page>
    <thetitle xml:lang='en'><![CDATA[en]]></thetitle>
    <thetitle xml:lang='fr'><![CDATA[fr]]></thetitle>
    <thetitle xml:lang='nl'><![CDATA[nl]]></thetitle>
    <thetitle xml:lang='nl-BE'><![CDATA[nl]]></thetitle>
</page>


De volgende code vereenvoudigd het selecteren van een node waarbij je een x-aantal nodes hebt voor verschillende talen alsook de mogelijkheid tot landspecifieke node.
De taal - locatie is op voorhand gekend en wordt meegegeven.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
class StringBundle
{
    const NAMESPACE_XML = 'http://www.w3.org/XML/1998/namespace';
    protected $locale;
    protected $language;
    protected $xml;

    /*construct the SimpleXML obj. without the unwanted nodes*/
    public function __construct($identifier, $locale)
    {

        $this->language = strstr($this->locale, '-', true);
        $xml = new \DOMDocument();
        $elementFileName = $identifier.".xml";
        $elementFilePath = "xml/".$elementFileName;
        if(file_exists($elementFilePath))
        {

            $xml->load($elementFilePath);
            $xml->saveXML();
            $this->cleanThis($xml->documentElement);
        }

        $this->bundle = simplexml_import_dom($xml);
    }


    /**
     * remove the unwanted lang
     */

    protected function cleanThis(\DOMNode $node = null)
    {

        if ($node->hasChildNodes())
         {

                $localeNode = $langNode = null;
            for ($i = $node->childNodes->length - 1; $i >= 0; $i--)
            {

                $child = $node->childNodes->item($i);
                if (!$child instanceof \DOMElement)
                 {

                    continue;
                }

                    if ($child->hasAttributeNS(self::NAMESPACE_XML, 'lang'))
                {

                        $lang = $child->getAttributeNS(self::NAMESPACE_XML, 'lang');
                    if ($lang === $this->locale)
                {

                        $localeNode = $child;
                    if ($langNode)
                    {

                        $langNode->parentNode->removeChild($langNode);
                       }
                   }

                else if ($lang === $this->language && !$localeNode)
                {

                       $langNode = $child;
                }

                 else
                 {
                        $node->removeChild($child);
                }
                   }

                $this->removeUnwantedLocales($child);
            }
        }
    }


    /**
     * Magic getter
     * return SimpleXML
     */

    public function __get($name)
    {

        return $this->bundle->$name;
    }
}

?>


dus wanneer we nu een xml willen aanroepen in de juiste taal:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
 
$getString
= new StringBundle('test', 'nl');

echo $getString->thetitle;
?>
Gewijzigd op 01/01/1970 01:00:00 door Sven
 



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.