2016-11-03 49 views
1

我有一個從Drupal的文本區域未來的字符串。 drupal中的字符串包含html標籤,但是當我打印字符串時,我沒有看到它們。用htmlspecialchars雙編碼不這樣做的伎倆

此字符串後進入new SimpleXMLElement,但由於它有一些問題人物,我想在這裏呼籲:

$string = htmlspecialchars($string, ENT_XML1 | ENT_QUOTES,'UTF-8', false); 

的問題是,後來,我的字符串看起來遵循

<?xml version="1.0" encoding="UTF-8"?> 
<Data xmlns="http://www.digitalmeasures.com/schema/data" xmlns:dmd="http://www.digitalmeasures.com/schema/data-metadata" dmd:date="2016-11-03"> 
    <Record userId="1" username="y" dmd:surveyId="1127463"> 
     <dmd:IndexEntry indexKey="x" entryKey="x &amp; x" text="x &amp; Life x"/> 

這是字符串的一小部分

因此,當我打電話給SimpleXMLElement時,我得到了

String could not be parsed as XML 

我試圖避免這種情況設置爲falsedouble_encode價值,但它不工作。 我不能刪除SimpleXMLElementon一步,它打破了一些Drupal的功能。 我在做什麼錯?

____EDIT_____

作爲檢查我取代了用htmlspecialchars與

$replace = str_replace('&', '&amp;', $string); 

這是工作的罰款。

+0

你嘗試驗證XML在W3C驗證? – Fky

+0

是的。沒有這個更換,這是工作的罰款(假設我刪除了與它) 的問題是,添加XML標籤調用的htmlspecialchars – Quantico

+0

後,你有沒有嘗試沒有ENT_QUOTES選擇? – Fky

回答

0

$ replace = str_replace('&','&',$ string);

相關問題