Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to deal with special characters in URLs inside XML

I have an XML element that has a url as one of it's children, for example:
http://maps.google.com/FortWorth&Texas,more+url;data

When parsing this, I'm having two issues:
1.) The (&) symbol breaks the entire parse unless replaced with &amp (which breaks the url)
2.) The comma (,) tries to send my parser on to the next child, resulting in an incomplete url.

What can I do to remedy this?
I'm using Javascript and PHP.

like image 499
Kirt Avatar asked Dec 13 '22 17:12

Kirt


2 Answers

Replacing & with & shouldn't break the url. Did you left out the ;?

Better solution is you should wrap that in a CDATA tag:

<![CDATA[ http://maps.google.com/FortWorth&Texas,more+url;data ]]>

Which tells the XML parser to treat it as text and not parse the &.

like image 178
Vinh C Avatar answered Jan 01 '23 19:01

Vinh C


There are certain characters which are not valid in XML - you need to "escape" these in the xml document.

These characters and their "escaped" versions are:

>  &gt;
<  &lt;
&  &amp;
'   &apos;
"   &quot;
like image 20
Greg Sansom Avatar answered Jan 01 '23 17:01

Greg Sansom