1
...或如何以另一種方式做到這一點?如何停止自動轉義字符引用的PHP DOM?
我使用DOMDocument創建了一個選擇框。
$field = $this->dom->createElement('select');
$optgroup = $this->dom->createElement('optgroup');
foreach($options as $v) {
$option = $this->dom->createElement('option');
$option->setAttribute('value', $v);
$option->appendChild($this->dom->createTextNode($v));
$optgroup->appendChild($option);
}
$field->appendChild($optgroup);
哪裏$options
是從圖標字體字符引用數組預裝:
array('!', '"', '#', '$', ...);
我需要我的輸出看起來像這樣:
<select>
<optgroup>
<option value="!">!</option>
<option value=""">"</option>
<option value="#">#</option>
...
</optgroup>
</select>
但是,使用DOM方法,它會自動轉義所有字符引用:
<option value="&#33;">&#33;</option>
我該如何防止發生?
注意:createEntityReference
不適用於此,因爲該方法只支持實體引用而不支持字符引用。使用它導致'無效字符錯誤'的致命錯誤。
'createDocumentFragement'沒有'loadHTML'方法。 http://www.php.net/manual/en/class.domdocumentfragment.php –
拍攝...總是一個捕獲。它的確擴展了domnode,domnode作爲一個屬性。可能會涉及到這一點。它也有附加的XML(),這可能會訣竅。不知道它會與角色實體有多嚴格。 –
這已經有一段時間了,但我從來沒有回過頭來說這最終奏效,只是使用'appendXML()'方法。 –