[英]Simple XML Question
我在運行時創建XML,其架構就像
<Item>
<Content>Hi</Content>
</item>
問題是當我嘗試將一些HTML內容保存到該標簽時
<Item>
<Content><strong>Hi<strong></Content>
</item>
如何解決這個問題
提前致謝
正確的答案是不要在XML中嵌入標簽。 XML僅應定義數據,解析器應將其放在正確的標記中,例如<strong></strong>
所有Item-> Contents。
另一種解決方案是使用XML轉義符對標簽進行轉義: <
和>
。
我假設您有一個架構,該架構允許Item元素包含Content元素,並且Content元素只能包含text或CDATA或類似內容。 在這種情況下,您有兩個選擇。
首先,您可以以某種方式轉義html。 您可以按照Fredrik上面的建議使用CDATA部分。 另外,您也可以按照上述方法避免包圍。 這兩種解決方案都可以使您繼續將Content的內容視為文本。 這樣就可以為您的元素提供一個簡單的內容模型。
另外,您可以擴展架構以允許xhtml元素作為Content元素的一部分。 我在這里提出了一種解決方法。 當然,如果您的內容是html而不是xhtml,則此方法將無效。
確實,選擇取決於您是否希望能夠將嵌入式html解析為xml的一部分。 如果您希望將其作為文本,請對其進行轉義。 如果希望它可解析,請擴展您的架構。
您可以將HTML內容嵌入CDATA部分中:
<Item><![CDATA[ <Content><strong>Hi</strong></Content> ]]></item>
在將HTML字符串添加到xml之前,需要對其進行正確的轉義。 如果您使用的是.NET,則可以使用以下幾種方法 。
小於標記(<)必須使用&lt;進行轉義。 和>標記(&gt;)相同
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.