According to this question:
Are line breaks in XML attribute values allowed?
line breaks in XML attributes are perfectly valid (although perhaps not recommended):
<xmltag1>
<xmltag2 attrib="line 1
line 2
line 3">
</xmltag2>
</xmltag1>
When I parse such XML using LINQ to XML (System.Xml.Linq), those line breaks are converted silently to space ' ' characters.
Is there any way to tell the XDocument.Load() parser to preserve those line breaks?
P.S.: The XML I’m parsing is written by third-party software, so I cannot change the way the line breaks are written.
If you want line breaks in attribute values to be preserved then you need to write them with character references e.g.
as other wise the XML parser will normalize them to spaces, according to the XML specification http://www.w3.org/TR/xml/#AVNormalize.
[edit] If you want to avoid the attribute value normalization then loading the XML with a legacy
XmlTextReaderhelps:That outputs