[PHP] XML Datei von ISO-8859-15 umwandeln für Funktion simplexml_load()

fo$$i

Enthusiast
Thread Starter
Mitglied seit
18.05.2005
Beiträge
557
Ort
Tettnang
Hi,

habe eine XML Datei in ISO-8859-15 vorliegen und will diese so umwandeln, damit die Funktion simplexml_load_file() diese verarbeiten kann. Aktuell funktioniert das nur halbwegs, da simplexml_load_file() keine Umlaute wie ä in das simplexml-Objekt aufnimmt. Also wie kann ich es schaffen, dass bei der Ausgabe des simplexml-Objektes auch Umlaute ausgegeben werden?

Code:
<?xml version="1.0" encoding="ISO-8859-15"?>
<!DOCTYPE publishDetail PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN" "http://localhost:8080/dtd/xhtml-lat1.ent">

<projects>
    <project>
        <projectName>123ÄÜßüä</projectName>
    </project>
</projects>

Alternativ könnte es mir vielleicht auch eine komplexe Suchfunktion reichen. Da ich alle <project> aus der XML Datei mit meinem gewünschten <project> Ausprägung vergleichen muss und anschließend noch Attribute diesen <project>s ausgeben muss. Also die Werte zwischen den Tags ausgeben, die Tags aber bei der Suche berücksichtigen.
Code:
<projects>
    <project>
        <projectName>123ÄÜßüä</projectName>
         <projectAttr>mein gewünschtes Attribut</projectAttr>
    </project>
<project>
        <projectName>Das nicht</projectName>
         <projectAttr>mein nicht gewünschtes Attribut</projectAttr>
    </project>
</projects>

mfg und tia!
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Hallo,
da ich davon ausgehe, dass du ISO-8859-15 nach UTF-8 umwandeln willst benutze einfach für die Ausgabe:
utf8_encode()

Für die Suche in einem XML-Baum könnte dir ansonsten XPath-Ausdrücke helfen, welche die Suche anhand von bestimmten Kriterien erledigt

** edit:
Der könnte bei der Suche helfen:
http://php.net/manual/de/simplexmlelement.xpath.php
 
Zuletzt bearbeitet:
hi

Danke für deine Antwort. utf8_encode() klappte nicht.

Habs jetzt aber gelöst:

Habe die XML Datei bevor ich sie per simplexml_load_file() geladen habe per str_replace() die Umlaute ersetzt und vor der Ausgabe wieder per str_replace() eingefügt.

mfg
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh