URL-адрес изменяется после анализа с Nokogiri - PullRequest
0 голосов
/ 26 марта 2019
str = "<?xml version='1.0' encoding='utf-8'?><url>https://somehost?p1=v1&p2=v2</url>"
=> "<?xml version='1.0' encoding='utf-8'?><url>https://somehost?p1=v1&p2=v2</url>"

x = Nokogiri::XML(str)
=> #<Nokogiri::XML::Document:0x3fcaa893b900 name="document" children=[#<Nokogiri::XML::Element:0x3fcaa893b644 name="url" children=[#<Nokogiri::XML::Text:0x3fcaa893b48c "https://somehost?p1=v1=v2">]>]>

Почему '& p2' удалено?после разбора?

1 Ответ

3 голосов
/ 26 марта 2019

Это потому, что в контексте XML / HTML & имеет особое значение. Вы должны избежать этого:

<?xml version='1.0' encoding='utf-8'?><url>https://somehost?p1=v1&amp;p2=v2</url>

Он анализирует это как сущность &p2, которая не является действительной сущностью, поэтому он удаляется, оставляя вам p1=v1=p2

...