这很奇怪。我有一个WCF Message,我正在尝试将正文的内容读入XmlDocument。消息正文的内容在线上看起来像这样(当启用WCF跟踪检查时):
<abc>
<timeZone>(GMT-05:00) Eastern Time (US & Canada)</timeZone>
</abc>
读者的代码如下所示:
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreWhitespace = false;
settings.CheckCharacters = false;
XmlReader bodyReader = XmlReader.Create(
message.GetReaderAtBodyContents().ReadSubtree(), settings);
XmlDocument messageDoc = new XmlDocument();
messageDoc.Load(bodyReader);
messageDoc
中生成的XML如下所示:
<abc>
<timeZone>(GMT-05:00) Eastern Time (US &Canada)</timeZone>
</abc>
那么原始&
之后的额外空格去了哪里?
答案 0 :(得分:3)
您可以通过删除XmlReader
来简化代码。然后在XmlDocument
上设置PreserveWhiteSpace。您可以用以下代码替换所有代码:
XmlDocument messageDoc = new XmlDocument() { PreserveWhitespace = true };
messageDoc.Load(message.GetReaderAtBodyContents().ReadSubtree());