Я получаю данные из базы данных в PHP / mysql, у которой есть недопустимые символы, например &. Я создаю XML следующим образом:
$stmt->bind_result($foo)|| fail('An error occurred: MySQL bind_result', $db->error); $foo=htmlspecialchars($foo, ENT_XML1, 'UTF-8'); $xmlstr = "<?xml version="1.0" encoding="UTF-8" standalone="yes"> <xml>"; while ($stmt->fetch()) { $xmlstr.=" <RECORD> <FOO>$foo</FOO> </RECORD>";} $xmlstr.=" </xml>"; $stmt->close(); echo $xmlstr;
Я пытаюсь получить данные и помещать в массив с javascript – но он дает мне ошибку Недопустимый формат XML. Я получаю случайные записи, и иногда это работает. Поэтому мне кажется, что проблема связана с символами, поступающими из базы данных.
Ошибка возникает здесь в JavaScript:
var foo; var formData = "label="+label; //Name value Pair $.ajax({ url: './php/foo.php', type: 'POST', data : formData, dataType: 'xml', success: function(returnedXMLResponse){ $('RECORD', returnedXMLResponse).each(function(){ foo = $('FOO', this).text(); }) }, error: function(XMLHttpRequest, textStatus, errorThrown) { console.log("Status: " + textStatus); console.log("Error: " + errorThrown); } });