@@ -40,7 +40,7 @@ public static XmlQualifiedName GetQName(this XmlNode n) {
4040 public static string GetMergedNestedText ( XmlNode n ) {
4141 return n . ChildNodes
4242 . Cast < XmlNode > ( )
43- . Where ( child => child is XmlText || child is XmlCDataSection )
43+ . Where ( child => IsTextualContentNode ( child ) )
4444 . Select ( child => child . Value )
4545 . Where ( s => s != null )
4646 . Aggregate ( new StringBuilder ( ) , ( sb , s ) => sb . Append ( s ) )
@@ -147,7 +147,7 @@ private static void HandleWsRec(XmlNode n, bool normalize) {
147147 foreach ( XmlNode child in n . ChildNodes ) {
148148 HandleWsRec ( child , normalize ) ;
149149 if ( ! ( n is XmlAttribute )
150- && ( child is XmlText || child is XmlCDataSection || child is XmlWhitespace )
150+ && IsTextualContentNode ( child )
151151 && child . Value . Length == 0 ) {
152152 toRemove . AddLast ( child ) ;
153153 }
@@ -199,7 +199,7 @@ private static void StripECW(XmlNode n) {
199199 foreach ( XmlNode child in n . ChildNodes ) {
200200 StripECW ( child ) ;
201201 if ( ! ( n is XmlAttribute )
202- && ( child is XmlText || child is XmlCDataSection || child is XmlWhitespace )
202+ && IsTextualContentNode ( child )
203203 && child . Value . Trim ( ) . Length == 0 ) {
204204 toRemove . AddLast ( child ) ;
205205 }
@@ -208,5 +208,10 @@ private static void StripECW(XmlNode n) {
208208 n . RemoveChild ( child ) ;
209209 }
210210 }
211+
212+ private static bool IsTextualContentNode ( XmlNode n ) {
213+ return n is XmlText || n is XmlCDataSection || n is XmlWhitespace
214+ || n is XmlSignificantWhitespace ;
215+ }
211216 }
212217}
0 commit comments