2017-01-09 78 views
0

我試圖在屬性值內包含html內容(例如<tag attribute="<b>hi</b>"></tag>)。根據this,這似乎應該在字符串屬性類型上默認完成,但是我得到無效的字符錯誤。有沒有辦法讓XAttribute把它當作CDATA?獲取xelement將xml屬性值視爲CDATA

回答

1

無法將XML屬性值指定爲CDATA。你能做什麼,你能逃脫您想放置一個值的XML:

<tag attribute="<b>hi</b>"></tag> 

將成爲

<tag attribute="&lt;b&gt;hi&lt;/b&gt;"></tag> 

如果你正在建設一個文件,你想添加這個屬性,所有你需要做的是添加HTML中XAttribute構造函數:

var doc = new XDocument(new XElement("tag", new XAttribute("attribute", "<b>hi</b>"))); 

要獲得爲一個XML文檔,你可以使用此代碼值:

var doc = XDocument.Parse("<tag attribute=\"&lt;b&gt;hi&lt;/b&gt;\"></tag>"); 
var attributeValue = doc.Root.Attribute("attribute").Value; 

var newDoc = XDocument.Parse(attributeValue); 
+0

謝謝@Damian,我知道轉義html標籤。然而,我在文章中提到XML規範,似乎你不需要爲屬性轉義任何標籤,因爲它默認被視爲CDATA。我只是想知道是否有辦法讓XElement認識到這一點。 – Riz