-1
A
回答
5
唯一的特殊字符,你需要在 XML逃跑是:
< - <
> - >
& - &
" - "
' - '/'
您可以在屬性值或文本節點中使用轉義變體。以下兩個示例代表相同的內容。
<foo><[email protected]></foo>
<foo><![CDATA[<[email protected]>]]></foo>
的<foo/>
的的nodeValue總是<[email protected]>
。
第一個是文本節點,第二個是cdata節。在cdata部分,實體不被允許,並且禁止序列]]>
。如果DOM包含]]>
,DOM將自動分割一個CDATA部分。
如果您不使用支持Unicode的Unicode編碼來處理XML,則只需要轉義其他特殊字符,如©。如果你想要一個簡單的ASCII XML,你可以將特殊字符寫成數字字符引用。數字是Unicode中字符的代碼點。
© - ©/©
Schema和DTD可以定義命名字符實體引用。這些在XML中不可用,但可以以基於XML的格式提供。 (X)HTML就是一個例子。
© - ©
如果使用DOM,需要很會照顧它。
在UTF-8中,只有XML特殊字符纔會被轉義。
$dom = new DOMDocument('1.0', 'UTF-8');
$dom->appendChild($dom->createElement('foo'));
$dom->documentElement->appendChild($dom->createTextNode('<©€äöü>'));
echo $dom->saveXml();
輸出:
<?xml version="1.0" encoding="UTF-8"?>
<foo><©€äöü></foo>
在ASCII,多了很多將被轉義:
$dom = new DOMDocument('1.0', 'ASCII');
$dom->appendChild($dom->createElement('foo'));
$dom->documentElement->appendChild($dom->createTextNode('<©€äöü>'));
echo $dom->saveXml();
輸出:
<?xml version="1.0" encoding="ASCII"?>
<foo><©€äöü></foo>
+0
用和®取代特殊字符的伎倆!感謝大家的幫助! –
相關問題
- 1. xml和php - 輸出文字
- 2. 如何使用禁用輸出轉義輸出xml字符
- 3. 從xml中的php輸出中刪除字符
- 4. 從PHP生成XML輸出
- 5. 如何從標準輸出輸出到一個字符串中golang
- 6. 帶XML的PHP XML輸出?
- 7. PHP字符串不輸出html標籤?
- 8. 如何從PHP中的JSON輸出中去除無效字符
- 9. PHP如何輸出字符串到html
- 10. 如何將XML作爲字符串從XmlTextReader輸出到Response.Write中?
- 11. 輸出XML中使用PHP
- 12. 字符輸出 - PHP包括
- 13. PHP輸出\字符隨機
- 14. 如何從PHP輸出的字符串中刪除單詞?
- 15. json,php - 從數組輸出字符串
- 16. Valgrind的C:如何輸入字符串從標準輸入輸出
- 17. 輸出字符串陣列和輸出項目從陣列
- 18. 如何從輸出中排除XML prolog?
- 19. php cli輸出中的奇怪字符
- 20. PHP的XML輸出串聯
- 21. Java和XML輸出
- 22. C中的標準輸入和輸出標準輸入和輸出
- 23. PHP Webservice XML輸出/標籤元素值
- 24. nolatin在XML輸出的字符
- 25. 輸出商店
- 26. 如何快速從Python流式輸出XML輸出
- 27. 字符串ArrayList和輸出
- 28. PHP XML輸出中的字符編碼問題
- 29. 字符串輸入和輸出用C
- 30. 如何輸出php?
請說明你已經採取了這樣的措施遠遠不能實現所需的功能。 –
你爲什麼要逃避他們?它們在XML中沒有特殊的含義。您只需在使用字符編碼時保持一致。 – Quentin