If there are ampersands (&) in links within tags (eg. href= url= rel=) simplexml_load_file() fails with parser error : EntityRef: expecting ';' This useful comment in the manual suggests str_replace()'ing it with the & entity: https://www.php.net/manual/en/function.simplexml-load-file.php#117566 %26 url encoding also works, although no other character that I'm aware of seems to cause this parser error / requires urlencode()'ing. But this seems like a bug, or something that simplexml_load_file should be able to handle? Or does xml or something not allow &'s in tag properties? For example, trying to load this file: <?xml version="1.0"?> <feed xmlns="http://www.w3.org/2005/Atom"> <entry> <link href="http://example.com/bla.php?yes&no" /> </entry> </feed>