簡體   English   中英

簡單的XML問題

[英]Simple XML Question

我在運行時創建XML,其架構就像

<Item>
    <Content>Hi</Content>
</item>

問題是當我嘗試將一些HTML內容保存到該標簽時

<Item>
    <Content><strong>Hi<strong></Content>
</item>

如何解決這個問題

提前致謝

正確的答案是不要在XML中嵌入標簽。 XML僅應定義數據,解析器應將其放在正確的標記中,例如<strong></strong>所有Item-> Contents。

另一種解決方案是使用XML轉義符對標簽進行轉義: &lt; &gt;

我假設您有一個架構,該架構允許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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM