2012-01-06 84 views
2

作爲XML節點屬性的一部分,我需要將HTML字符作爲屬性值的一部分傳遞,如hello「/>。我不能使用CDATA作爲節點值的一部分,因爲其他很多其他系統使用這種方法,我不能打破或重寫該過程,所以我堅持這一點。在XML屬性中轉義特殊(HTML標記)字符?

我不能HTML編碼值,因爲它們在電子郵件中使用,並隨後逐字輸出爲HTML編碼值(<BR>你好,例如)。

是否有一種方式來逃避HTML(具體而言,<字符),並允許我繼續未編碼的HTML內嵌作爲屬性?謝謝。

+1

所以,你想在HTML屬性中有未經修改的HTML,而HTML應該被轉義(=修改)?這聽起來像是一個矛盾。什麼阻止你使用'<'? – 2012-01-06 16:51:13

+0

XML屬性中未修改的HTML。我無法對html進行編碼,因爲它也會以html編碼的形式進入電子郵件。 – 2012-01-06 16:54:39

+0

所以,' 2012-01-06 16:57:14

回答

3

XML字符<>&"必須轉義爲與HTML實體&lt;等相同。使用XML APIS將接收/存儲原始字符。 HTML中的其他字符實體應轉換爲UTF-8。數字實體十六進制(&#xFC;)和十進制(&#2285;)很簡單,但對於命名實體(&bull;),需要一個庫。 (如果想實現完整性)。