simpleXml xml:lang

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior PHP developer/ Software Architect

Functie Momenteel zijn ze op zoek naar een ervaren PHP developer die zichzelf graag bezighoudt met zaken als architectuur en de algehele verbetering van structuren en standaarden. Het is eigenlijk meer operationeel als uitvoerend omdat je bezig gaat met zaken als het verder uitrollen en verbeteren van testautomatisering, codereviews, tickets en de doorloop hiervan en architectuurkeuzes. Mocht je hiernaast ook wat DevOps kennis meenemen is dit mooi meegenomen! Vanwege het kleine team maar de wereldwijde impact die zij leveren is er veel focus op kwaliteit. In deze functie werk je aan één van hun belangrijkste applicaties. Hierin werk je nauw

Bekijk vacature »

C# .NET Software Ontwikkelaar

Functie omschrijving Gezocht: Software Developer C# .NET voor een dynamische organisatie! Ben je onlangs afgestudeerd of ben je toe aan de volgende stap in je professionele carrière? Lees dan verder! We zijn momenteel op zoek naar een Software Developer die klaar is voor een nieuwe uitdaging en die onze eindklant in de regio Arnhem kan versterken. In deze functie werk je aan verschillende projecten en bezoek je vaak klanten. Je kunt een rol verwachten met veel uitdaging, diversiteit en verantwoordelijkheid. Bedrijfsprofiel Binnen welke organisatie ga je aan de slag? Je gaat werken bij een organisatie die zich specialiseert in het

Bekijk vacature »

.NET Developer

Functie omschrijving .NET developer met ervaring gezocht! Voor een softwarebedrijf in de regio Veenendaal zijn wij op zoek naar een .NET developer met een aantal jaar ervaring. Jij bent zowel zelfstandig als in teamverband verantwoordelijk voor het ontwikkelen en verbeteren van bestaande producten. Verder ben je bezig met nieuwbouw van websites, webapplicaties en mobiele applicaties die zowel intern als extern gebruikt worden. Je werkt hierbij nauw samen met andere developer, productmanagers en productspecialisten om zo mooie producten te creëren. Bedrijfsprofiel De organisatie waar je voor gaat werken is een snelgroeiende softwareleverancier en allround dienstverlener. Deze organisatie heeft zowel klanten die

Bekijk vacature »

Medior Java developer

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 »

Junior PHP Developer

Functieomschrijving Junior PHP Developer gezocht! Voor een opdrachtgever in de regio Gelderland zijn wij op zoek naar een Junior PHP Developer die onderdeel gaat worden van het ontwikkelingsteam van deze organisatie. In deze functie ga jij aan de slag met het schrijven van software voor de aansturing van en het managen van windparken en bijbehorende onderdelen. Hiernaast ga jij je bezighouden met het ontwikkelen, testen en onderhouden van diverse webapplicaties. Het team waarin je komt te werken bestaat uit 3 developers, hierdoor krijg je veel verantwoordelijkheid en de kans om jezelf verder te ontwikkelen. Er wordt echter wel van je

Bekijk vacature »

C# Ontwikkelaar

Functieomschrijving Voor een software ontwikkelaar in de omgeving van Vught zijn we op zoek naar een gemotiveerde C# ontwikkelaar. Deel jij hun passie voor development en dan vooral in C#.NET? Dan kan dit wel eens jouw droombaan zijn! Jouw werkzaamheden zullen er ongeveer als volgt uit gaan zien Door de wensen van de klant goed te begrijpen ga jij aan de slag dit om te zetten naar passende oplossingen en werk je deze uit tot een sterk eindproduct. Je gaat je bezighouden met de ontwikkeling van webapplicaties en websites, dit doe je door middel van ASP.NET, MVC Frameworks en C#.

Bekijk vacature »

.NET developer

Functie As a .NET developer you start in a driven and diverse development team. Your team consists of 16 IT professionals, including 7 software engineers. Because your new employer is internationally active, there are also international IT professionals working in the IT department. As a result, the official language is English. As a team you are responsible for a new Cloud Native product. This product runs entirely in Azure with a Progress Database and various Azure Functions. In addition, this product has a JS front-end, a REST API system and a layer in C # .NET. The idea is therefore

Bekijk vacature »

Front-end Developer

Functie omschrijving Wij zijn op zoek naar een Front-end Developer! Als Front-end Developer binnen dit softwarebedrijf ga je de frontends voor zowel je eigen interne projecten als die voor klanten opzetten, onderhouden en uitbreiden. Je zet ideeën om naar mooie successen voor de klanten. Dat is in een notendop wat je gaat doen! Wat kun je verwachten? Je werkt aan de doorontwikkeling van bestaande maatwerkapplicaties. Bijvoorbeeld wanneer de klant de applicatie wil uitbreiden met een nieuwe feature; Samen met het team van backenders en desginers zet je nieuwe ideeën van klanten om naar mooie oplossingen; Je werkt met verschillende frameworks.

Bekijk vacature »

Back-end PHP Software Developer - Juniorfunctie

Functieomschrijving Wij zijn op zoek naar een PHP Software Developer om ons team te versterken en mee te werken aan de ontwikkeling van eigen IOT-oplossingen. In deze functie ben je verantwoordelijk voor het bouwen van webapplicaties, apps en dashboards voor het uitlezen en managen van sensoren in machines. Je werkt nauw samen met een team van ontwikkelaars en engineers om de beste software-oplossingen te creëren. Jouw werkzaamheden zien er als volgt uit: Je bent in deze rol verantwoordelijk voor het ontwerpen, ontwikkelen en onderhouden van webapplicaties en softwaretoepassingen voor in-house ontwikkelde IOT oplossingen. Je werkt aan complexe databases en back-end

Bekijk vacature »

Software Ontwikkelaar C# .NET

Functie omschrijving Startende Software Ontwikkelaar gezocht met kennis van C# .NET! Ben jij net klaar met je opleiding en ben je op zoek naar je eerste echte werkervaring? Of heb jij al enige werkervaring maar ben toe aan iets nieuws? Dan is dit de perfecte kans voor jou! Wij zoeken namelijk een Junior Software Ontwikkelaar die klaar is voor een nieuwe uitdaging bij een leuke werkgeven in de regio Zeist. In deze functie werk jij vaak aan verschillende projecten en ga je bij klanten op bezoek. Ben jij op zoek naar een functie met uitdaging, diversiteit en verantwoordelijkheid? Dan is

Bekijk vacature »

Software Ontwikkelaar C# .NET

Functie omschrijving C# .NET Developer gezocht. Ben jij een full stack developer die op zoek is naar een nieuwe uitdaging binnen een leuk snel groeiend bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Developer met ervaring op het gebied van .NET die een organisatie in de regio Amersfoort gaat versterken. Jij gaat je binnen dit bedrijf vooral bezighouden met het verbeteren van de functionaliteiten van hun dataplatform. Samen met andere ontwikkelaars denk je mee in oplossingsrichtingen, architectuur en nieuwe technologieën. Bedrijfsprofiel De organisatie waar je voor gaat werken heeft een onafhankelijk dataplatform ontwikkelt voor de agrarische sector.

Bekijk vacature »

SQL Developer

Functie omschrijving We are looking for a dutch native speaker Jij gaat in deze functie aan de slag met uitdagende projecten en het creëren van maatwerk software, vooral middels SQL. Iedere klant/project is weer anders, maar dat maakt dit bedrijf en de functie erg uniek & uitdagend. Verder heb je de volgende taken: Ontwikkelen en ontwerpen van SQL databases. T-SQL wordt hierbij gebruikt als programmeer laag; Optimalisatie van query's, voor een verbeterde efficiency; Begeleiden van junior developers, mits je dit leuk vindt; Heb je meer interesse in een rol als consultant, dan is dit ook mogelijk. Je heb hier meer

Bekijk vacature »

Front-End React Developer

As a Front-End React Developer you improve the user-experience of our web applications for your colleagues in Coolblue. How do I become a Front-End React Developer at Coolblue? As a Front-End React Developer you are responsible for developing user interface components and implementing them using React.js concepts and workflows. You work with the UX Designer and get energy from coming up with creative solutions and present these within the team. During the day you gather and welcome feedback on your technical and soft skills. Would you like to become a Front-End React Developer at Coolblue? Read below if the job

Bekijk vacature »

Lead C++ Developer

The role of Lead C++ Developer As Lead C++ Developer at KUBUS you will be responsible for the implementation design of requirements and the software architecture of the desktop applications of BIMcollab, our platform for 3D model validation and issue management aimed at improving the quality of 3D building design models. Better 3D models lead to better buildings, thus contributing to the sustainability of the built environment with smarter use of materials, less waste and energy-efficient buildings. A good user experience is of paramount importance to us; we go for innovation and quality in our development. In your role as

Bekijk vacature »

Junior .NET developer

Functie Ons programma is voor afgestudeerde enthousiastelingen die het als een uitdaging zien om met een klein dynamisch team bij de grootste bedrijven van Nederland aan de slag te gaan. Tijdens jouw dienstverband word jij begeleid door een talent manager. Het ontwikkelen van jouw talent staat hierbij centraal. Het programma doorloop je met een team van circa 8 Mede- trainees. De eerste maand start je met een fulltime inhouse opleiding. Deze staat geheel in het teken van de werkzaamheden die jij verder in het programma zult uitvoeren. Na deze opleidingsmaand ga je aan de slag in een dynamische omgeving bij

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

12/01/2025 20:10:38
 

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.