2011-02-01 17 views
3

これは奇妙です。私はWCF Messageを持っていますが、本文の内容をXmlDocumentに読み込もうとしています。メッセージ本文の内容は、ワイヤ上でこのように見える(WCFトレースで検査したときにオン):XmlReaderはアンパサンドエンティティの後に空白を削除しますか?

<abc> 
    <timeZone>(GMT-05:00) Eastern Time (US &amp; 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> 

だから、元&amp;後の余分な空白は行きましたか?

+1

問題を再現できませんでした。私のテストでは空白が残っていました。 –

答えて

3

コードを簡略化するには、XmlReaderを削除します。その後、PreserveWhiteSpaceをXmlDocumentに設定します。すべてのコードを次のものに置き換えることができます:

XmlDocument messageDoc = new XmlDocument() { PreserveWhitespace = true }; 
messageDoc.Load(message.GetReaderAtBodyContents().ReadSubtree()); 
関連する問題