如何不对XML中的值进行编码

本文关键字:编码 何不 XML | 更新日期: 2024-09-19 18:26:12

我有一个正在C#脚本中编辑的xml文档。

  1. 我正在使用.load读取中的文档
  2. 。选择SingleNode以查找要编辑的节点
  3. 设置要设置的属性的.value
  4. 使用.Save

问题是。。。。

我正在将Salesforce接口的SQL语句保存在.value中。当您使用.save时,它会将字符串编码(>到&gt)。我不能这样做,因为Salesforce知道如何编码/解码,所以它必须是我设置的特定字符串。在不编码的情况下保存文档的最佳方法是什么。我想我可以读取xml文档,并解析为文件流,当我到达它时编辑字符串,但这似乎很麻烦。。。。

如何不对XML中的值进行编码

从技术上讲,XML是一个字符串。换句话说:一连串的字符。

区别在于标记。您需要特殊字符来将它们与其他字符区分开来。

三个字是绝对神圣不可侵犯的:<gt;和&

前两个构建了标记,最后一个是转义字符,告诉一个阅读实例:看,这是一个特殊的字符!

如果要在XML中使用这些字符必须用&lt; &gt;&amp;对它们进行转义。其余部分取决于给定的编码。UTF8处理的字符集与UTF16不同,还有更多。。。

这意味着:无法在XML中对此类字符进行编码/转义。

如果您只想将XML作为字符串处理,那么这很容易:XmlDocument具有OuterXML,这是一个string返回属性。它将以字符串的形式提供整个XML。

但请记住,如果您在错误的位置使用未编码的特殊字符,您的XML将崩溃。。。

编辑

事实上,有一种方法可以绕过(正如Alexander Petrov所指出的:CDATA部分。问题是:接收者如何读取您的数据?如果一切都按照正常的方式进行,编码就没有问题,因为任何读写器都会在将数据显示给人类阅读器之前对其重新编码。