我试图在属性值中包含html内容(例如<tag attribute="<b>hi</b>"></tag>
)。根据{{3}},似乎应该默认在字符串属性类型上完成,但是我得到了无效的字符错误。有没有办法让XAttribute将其视为CDATA?
答案 0 :(得分:1)
您不能将XML属性值指定为CDATA。您可以做什么,可以将要放置的xml转义为值:
<tag attribute="<b>hi</b>"></tag>
将成为
<tag attribute="<b>hi</b>"></tag>
如果要构建文档并且要添加此属性,则只需在XAttribute构造函数中添加html:
var doc = new XDocument(new XElement("tag", new XAttribute("attribute", "<b>hi</b>")));
要将值作为xml文档获取,您可以使用以下代码:
var doc = XDocument.Parse("<tag attribute=\"<b>hi</b>\"></tag>");
var attributeValue = doc.Root.Attribute("attribute").Value;
var newDoc = XDocument.Parse(attributeValue);