文本中的“&”在使用 XmlTextWriter 创建 xml 文件时被转义并转换为&
,但我不希望发生转换如何防止它发生?
除了使用 xmltextwriter 的 WriteRaw 函数还有其他方法吗?
文本中的“&”在使用 XmlTextWriter 创建 xml 文件时被转义并转换为&
,但我不希望发生转换如何防止它发生?
除了使用 xmltextwriter 的 WriteRaw 函数还有其他方法吗?
如果您在 XML 中放置未转义的 & 符号,则它不再是有效的 XML。
您的两个选择是逃避它(您的图书馆正在这样做):
<tag>One & another</tag>
或者将其包装在 CDATA 中:
<tag><![CDATA[One & another]]></tag>
这可以通过以下方式完成:
xmlWriter.WriteCData("One & another");
你为什么不希望这种情况发生?在我看来,该库正在按照 XML 的要求强制执行正确的字符转义。
我不确定它是否会起作用,但您可能想要检查通过 xmltextwriter.Settings 可用的 XmlWriterSettings 属性,尤其是 CheckCharacters 属性。
另一方面,正如 Brian Agnew 所提到的,不将 & 编码为 & 可能是错误的方法,因为它会使您的 XML 无效(除非您已经将其编码为 & 在这种情况下,您可能只想在给出它之前对其进行解码到 xmltextwriter 类。