阻止XDocument或XElement表单编码内容

时间:2012-10-11 11:21:52

标签: c# linq-to-xml

当我调用XDocument.Save时,它正在对我的html <br/>标记进行编码,有没有办法阻止它?

XDocument xDoc = new XDocument(new XElement("desc","jon skeet <br/> knows, the <br/> answer"));
xDoc.Save(Server.MapPath("~/tempUploads/encodeTest.xml"));

输出是:

<?xml version="1.0" encoding="utf-8"?>
<desc>jon skeet &lt;br/&gt; knows, the &lt;br/&gt; answer</desc>

输出我想:

<?xml version="1.0" encoding="utf-8"?>
<desc>jon skeet <br/> knows, the <br/> answer</desc>

1 个答案:

答案 0 :(得分:4)

这是预期的行为:您将XElement的内部文本设置为该字符串。它需要编码,否则会创建多个标签。

由于您实际上想要拥有多个标签,因此需要创建它们。最简单的方法是使用XElement.Parse

var content = XElement.Parse("<desc>jon skeet <br/> knows, the <br/> answer</desc>");
var xDoc = new XDocument(content);