Как мне избежать амперсандов в XML, чтобы они отображались как сущности в HTML?
у меня есть XML-текст, который я хочу отобразить на HTML-странице. Этот текст содержит амперсанд, который я хочу отобразить в его представлении сущности:&.
как мне избежать этого амперсанда в исходном XML? Я пытался &, но это декодируется как фактический символ амперсанда (&), что недопустимо в HTML.
поэтому я хочу, чтобы защитить его таким образом, что он будет отображаться как & на веб-странице, которая использует вывод XML.
12 ответов:
когда ваш XML содержит
&этот текст&.когда вы используете это в HTML, это будет отображаться как
&.
по состоянию на §2.4 спецификации XML 1.0, вы должны быть в состоянии использовать
&.я попробовал, но это не допускается.
вы уверены, что это не другой вопрос? XML явно определяет это как способ избежать амперсандов.
The
&символ сам по себе является escape-символом в XML, поэтому решение состоит в том, чтобы объединить его и десятичный эквивалент Unicode для&таким образом, гарантируя, что нет ошибок синтаксического анализа XML. То есть заменить символ&с&.
&должно работать просто отлично, Википедия имеет список предопределенных объектов в XML.
в моем случае я должен был изменить его на
%26.мне нужно было бежать
&в URL-адресе. Так что&не получилось у меня. Элемент urlencode изменения функции&to%26. Таким образом, ни XML, ни механизм URL-адреса браузера не жаловались на URL-адрес.
Я пробовал &, но это не сработало. Основываясь на ответе Wim ten Brink, я попробовал &, и это сработало.
один из моих коллег-разработчиков предложил мне использовать &, и это сработало независимо от того, сколько раз он может быть отображен.
&это способ представления амперсанда в большинстве разделов XML-документа.если вы хотите, чтобы XML отображался в HTML, вам нужно сначала создать правильно закодированный XML (который включает в себя изменение
&до&) и затем используйте это для создания правильно закодированного HTML (который включает в себя снова изменение&до&). Это приводит к:&для более подробного объяснения кодировки XML, смотрите:
Как насчет использования unicode
\u0026? Работает для меня в моих Android XML-файлов. Если возникнут проблемы, кто-нибудь дайте мне знать.
связанная проблема заключается в том, как кодировать содержимое элемента XML, когда такое содержимое содержит амперсанд-если XML является частью URI, отправленного с действием GET. (Оставляя в стороне мудрость такого API-это было то, с чем мне пришлось иметь дело сегодня.) Я пробовал все, что упоминалось выше, и единственное, что действительно работало, было
%26amp;The%26был необходим для URL-кодирования первого символа в XML-кодировке для амперсанда. Элементamp;после%26был необходим, потому что XML часть URI загружалась в серверную часть XML-документа. Поэтому в этом забавном сценарии необходимо было сшить обе методологии кодирования вместе.
рассмотрим, если ваш XML выглядит следующим образом.
<Employees Id="1" Name="ABC"> <Query> SELECT * FROM EMP WHERE ID=1 AND RES<>'GCF' <Query> </Employees>вы не можете использовать
<>непосредственно, как он выдает ошибку. В этом случае, вы можете использовать<>вместо этого.<Employees Id="1" Name="ABC"> <Query> SELECT * FROM EMP WHERE ID=1 AND RES <> 'GCF' <Query> </Employees>Нажмите здесь чтобы увидеть все коды.
Comments