При формировании XML знак амперсанда преобразуется в спецсимвол

Формируется XML документ для карты сайты.

$text_loc = $doc->createTextNode( HTTPS_SERVER . "index.php?route=product/category&path=" . $category['category_id'] );

Но спецсимвол заменятся кодом.

<loc>http://city/index.php?route=product/category&amp;path=890</loc>

Ответы (2 шт):

Автор решения: Aziz Umarov

Посмотрите на таблицу специальных символов по ссылке тут

Name    Character   Unicode code point (decimal)    Standard    Name
quot    "           U+0022 (34)                     XML 1.0     quotation mark
amp     &           U+0026 (38)                     XML 1.0     ampersand
apos    '           U+0027 (39)                     XML 1.0     apostrophe (1.0: apostrophe-quote)
lt      <           U+003C (60)                     XML 1.0     less-than sign
gt      >           U+003E (62)                     XML 1.0     greater-than sign

нет ничего страшного что они заменяются, в обратном преобразовании всё будет хорошо

→ Ссылка
Автор решения: Yitzhak Khabinsky

Просто чтобы дополнить ответ Азиза Умарова. Весь кредит принадлежит ему.

XML имеет пять предопределенных сущностей (entities).

Ссылка на сайт: Entity References

+---------+--------+----------------+
| Entity  | Symbol |  Description   |
+---------+--------+----------------+
| &lt;    | <      | less than      |
| &gt;    | >      | greater than   |
| &amp;   | &      | ampersand      |
| &apos;  | '      | apostrophe     |
| &quot;  | "      | quotation mark |
+---------+--------+----------------+
→ Ссылка