Hallo,
Het lukt me maar niet om valide XML volgens een 'zinnige' manier te maken
Dit de la code in PHP5
En onder: de result met een stringreplace, lijkt de enige goede manier....
Er zitten namelijk tekens als è enzo in.
Ik krijg elke keer een error als ik UTF-8 laat staan. Terwijl dit werkt....
Als ik direct ISO-8859-1 gebruik convert hij alles en is het geen XML meer volgens validators als FF en IE.
Iemand inzicht in dit? Lijkt een bug, maar characterssets zijn best lastig vind ik.
Het lukt me maar niet om valide XML volgens een 'zinnige' manier te maken
Dit de la code in PHP5
PHP:
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
| <?php // uses standard methods to print results class XML { public $db, $table; // constructor function __construct() { } // return an XML document to the XMLHttp caller function createXML() { // create new DOM object $dom = new DOMDocument('1.0', 'UTF-8'); $dom->formatOutput = true; $dom->preserveWhiteSpace = false; // create root element $root = $dom->createElement('rows'); $root = $dom->appendChild($root); // get data $query = "SELECT * FROM ".$this->table; $result = $this->db->query($query); $nrows = $this->db->num_rows($result); $fields = $this->db->describe($this->table); // iterate through the resultset while ($row = $this->db->fetch_assoc($result)) { // create content elements $e['row'] = $dom->createElement('row'); $e['row'] = $root->appendChild($e['row']); // create fieldcontent foreach ($fields as $value) { // XML compatible $row[$value] = htmlspecialchars($row[$value], ENT_QUOTES, 'UTF-8'); $e[$value] = $dom->createElement($value, $row[$value]); $e[$value] = $e['row']->appendChild($e[$value]); } } // Somehow, this is needed to have valid XML $result = str_replace('UTF-8', 'ISO-8859-1', $dom->saveXML()); // echo the result return $result; } } |
En onder: de result met een stringreplace, lijkt de enige goede manier....
Er zitten namelijk tekens als è enzo in.
Ik krijg elke keer een error als ik UTF-8 laat staan. Terwijl dit werkt....
Als ik direct ISO-8859-1 gebruik convert hij alles en is het geen XML meer volgens validators als FF en IE.
Iemand inzicht in dit? Lijkt een bug, maar characterssets zijn best lastig vind ik.
mijn naam slaat nergens op, althans niet op mij :P