xmlParseEntityRef: no name warnings while loading xml into a php file

xmlParseEntityRef: no name warnings while loading xml into a php file

The XML is most probably invalid.

The problem could be the &

$text=preg_replace(/&(?!#?[a-z0-9]+;)/g, &, $text);

will get rid of the & and replace it with its HTML code version…give it a try.

Found this here …

Problem: An XML parser returns the error “xmlParseEntityRef: noname”

Cause: There is a stray ‘&’ (ampersand character) somewhere in the XML text eg. some text & some more text

Solution:

  • Solution 1: Remove the ampersand.
  • Solution 2: Encode the ampersand (that is replace the & character with & ). Remember to Decode when reading the XML
    text.
  • Solution 3: Use CDATA sections (text inside a CDATA section will be ignored by the parser.) eg. <![CDATA[some text & some more
    text]]>

Note: ‘&’ ‘< >‘ will all give problems if not handled correctly.

xmlParseEntityRef: no name warnings while loading xml into a php file

Try to clean the HTML first using this function:

$html = htmlspecialchars($html);

Special chars are usually represented differently in HTML and it might be confusing for the compiler. Like & becomes &amp;.

Leave a Reply

Your email address will not be published.