2010-08-11 147 views
1

当我用linq检索xml时,<CDATA[[]]>被删除,这就是我想要实现的。linq to xml CDATA问题

但是当我保存该文件时,<CDATA[[]]>在xml文件中变成&lt;CDATA[[]]&gt;。 在保存之前,我是否明确地附加了<CDATA[[]]>,这给了我相同的结果。

尝试追加&lt;CDATA[[]]&gt;但仍然给了我相同的结果。
有没有其他方法可以让它在xml文件中显示<CDATA[[]]>

我使用Encoding.UTF8.GetBytes()在使用XDocument.Save(System.IO.StringWriter)保存XDocument后写入文件。

回答

10

不是100%确定你在这里问什么,但它似乎是我如何在XElement中创建一个CData节。实际上,使用XCData对象非常简单。

当你读它,因为你已经看到的,你不需要做任何特殊,演员运算符重载将提取的数据,你即

string myCdata = (string)xe.Element("SomeNode"); 
+0

你给一些想法,但我不知道如何申请。显示下面的代码的一些例子,取代了一些敏感的单词。无论如何,在节点中,我有一些属性,sld保持不变。 var abc =(from def in XDocument.Descendants(“someNode”) select new { def })。First(); abc.def.SetValue(“<![CDATA []]>”); – 2010-08-11 03:57:21

+0

对不起,评论混乱,但我不知道如何发表评论去新行 – 2010-08-11 03:59:34

+0

不知道如果它有帮助C_Range但这固定了我的问题... thx :) +1 – War 2012-03-07 10:16:02