【问题标题】:linq to xml CDATA problemlinq to xml CDATA 问题
【发布时间】:2010-08-11 03:31:11
【问题描述】:

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

但是当我保存文件时,<CDATA[[]]> 在 xml 文件中变成了<CDATA[[ ]]>。 无论我是否在保存之前明确附加<CDATA[[ ]]> 都会给我相同的结果。

尝试添加 <CDATA[[ ]]> 但仍然给我相同的结果。
有没有其他方法让它在xml文件中显示<CDATA[[]]>

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

【问题讨论】:

    标签: xml linq cdata


    【解决方案1】:

    不是 100% 确定您在这里问什么,但这似乎是我如何在您的 XElement 中创建 CData 部分。使用 XCData 对象其实很简单。

    yourXElement.Add(new XElement("SomeNode", new XCData("Some CData content")));
    

    当您阅读它时,正如您已经看到的那样,您不需要做任何特别的事情,强制转换运算符重载将为您提取数据,即

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

    【讨论】:

    • 你给出了一些想法,但我不确定如何申请。显示下面的代码示例,替换了一些敏感词。无论如何,在节点中,我有一些属性 sld 保持不变。 var abc= (from def in XDocument.Descendants("someNode") select new { def }).First(); abc.def.SetValue("]]>");
    • 抱歉评论乱七八糟,但我不知道如何让评论换行
    • 不知道它是否对 C_Range 有帮助,但这解决了我的问题...谢谢 :) +1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多