Как вы увидите, XML :: LibXML изменил URL, а также текст внутри тега span!
Вы ошибаетесь. URL не изменился. И исходный HTML, и сгенерированный HTML создают один и тот же URL (http://url.com/foo?a=1&b=2
). HTML-код другой, но отображаемый текст - нет.
То же самое относится и к тексту в промежутке. И исходный HTML, и сгенерированный HTML создают один и тот же URL (this & that & what?
). HTML отличается, но URL не.
Насколько мне известно, нет способа контролировать, какие символы XML :: LibXML экранируют toString
. Очевидно, он выбирает экранирование &
, даже если это технически не требуется в HTML.
Есть почему? Нет никакого вреда в том, что "&
" сбежал.
"this & that & what?
" и "this & that & what?
" означают одно и то же в HTML.
"href="http://url.com/foo?a=1&b=2"
" и "href="http://url.com/foo?a=1&b=2"
" означают одно и то же в HTML.
PS & mdash; Если вы хотите создать HTML, вы должны использовать ->toStringHTML()
, а не ->toString()
. Последний производит XML.