Internet Explorer не показывает кавычки в XML - PullRequest
2 голосов
/ 23 февраля 2012

Я использую PHP для генерации XML. Мне нужно поместить цитаты в часть текста, который отправляется. Я могу использовать htmlentities или htmlspecialchars () для преобразования кавычек в специальные символы, и специальные символы хорошо отображаются в Firefox или Chrome. Однако в Internet Explorer он просто создает пустой элемент.

В Firefox пишет:

<marker description="Yes &quot;I Do"/>

В IE пишет:

<marker description=""\>

Вот соответствующий код:

$dom = new DOMDocument("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);
header("Content-type: text/xml");

$node = $dom->createElement("marker");
$newnode->setAttribute("description", htmlentities("Yes \"I Do"))
echo $dom->saveXML();

Извините, я пытался все отладить и отправил неправильный текст. Я использовал htmlspecialchars (), так как заметки об изменениях все еще не работают. Я попробовал & quot как тест, и он работает в Firefox, но не в IE. Извините за оригинальную опечатку. - user1098504 14 часов назад

В качестве теста, в любом случае, поставьте "Да" Я делаю "и посмотрите, не сломан ли IE - SpikeX 14 часов назад

У меня сейчас работает. Я пробовал htmlspecialchars () и пробовал & quot как тест. Я думаю, что где-то, когда я тестировал, я не очищал кэш каждый раз с IE, и хотя я делал принудительное обновление, это не всегда обновляло. Я думаю, что частью моей первоначальной проблемы было то, что кто-то скопировал и вставил исходные данные в форму и в итоге получил угловые кавычки. Любые идеи для преобразования этих? Еще раз спасибо за вашу помощь с моей проблемой, хотя я думаю, что это была ошибка обновления.

1 Ответ

0 голосов
/ 23 февраля 2012

Вам необходимо изменить эту строку:

$newnode->setAttribute("description", "Yes "I Do");

К этому:

$newnode->setAttribute("description", "Yes &quot;I Do");

Вы можете использовать htmlspecialchars() для достижения того же самого, если вы не хотите делать каждую сущность вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...