title: Convert XML to formatted plain text issue
body: <p>I have the following XML and i want to convert the contents to something along the lines of the following format.</p>
  
  <p><strong>PatientId: 123455, IdScheme: Test ....</strong></p>
  
  <pre><code>&lt;?xml version="1.0"?&gt;
  &lt;gls:TheDocument xmlns:pbr="http://www.something.com" 
  xmlns:gls="http://www.testsomething.com" 
  xmlns:cnr="http://www.organisation.com" 
  xmlns:h="http://www.w3.org/1999/xhtml" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.8"&gt;
   &lt;gls:PatientDem&gt;
          &lt;cnr:PatientId&gt;
              &lt;cnr:IdValue&gt;123455&lt;/cnr:IdValue&gt;
              &lt;cnr:IdScheme&gt;TEST&lt;/cnr:IdScheme&gt;
              &lt;cnr:IdType&gt;PRN&lt;/cnr:IdType&gt;
          &lt;/cnr:PatientId&gt;
          &lt;cnr:PatientName&gt;
              &lt;cnr:Name&gt;
                  &lt;cnr:Title&gt;Mr&lt;/cnr:Title&gt;
                  &lt;cnr:GivenName&gt;Joe&lt;/cnr:GivenName&gt;
                  &lt;cnr:FamilyName&gt;Wood&lt;/cnr:FamilyName&gt;
              &lt;/cnr:Name&gt;
              &lt;cnr:NameType&gt;Current Name&lt;/cnr:NameType&gt;
          &lt;/cnr:PatientName&gt;
          &lt;cnr:PatientAddress&gt;
              &lt;cnr:Address&gt;
                  &lt;cnr:AddressLine&gt;57 High Street&lt;/cnr:AddressLine&gt;
                  &lt;cnr:AddressLine&gt;London&lt;/cnr:AddressLine&gt;
              &lt;/cnr:Address&gt;
              &lt;cnr:PostCode&gt;WC1E 7HU&lt;/cnr:PostCode&gt;
              &lt;cnr:AddressType&gt;Current Residence&lt;/cnr:AddressType&gt;
          &lt;/cnr:PatientAddress&gt;
          &lt;cnr:DateOfBirth&gt;1969-11-02&lt;/cnr:DateOfBirth&gt;
          &lt;cnr:Sex&gt;M&lt;/cnr:Sex&gt;
      &lt;/gls:PatientDem&gt;
      &lt;pbr:PatientAdminRef&gt;
              &lt;pbr:Referrer&gt;
                &lt;pbr:RefGP&gt;
                  &lt;cnr:GpcpName&gt;
                    &lt;cnr:FullName&gt;DR SMITH&lt;/cnr:FullName&gt;
                  &lt;/cnr:GpcpName&gt;
                  &lt;cnr:TheOrganisation&gt;
                    &lt;cnr:OrganisationId&gt;
                      &lt;cnr:IdValue&gt;52522&lt;/cnr:IdValue&gt;
                      &lt;cnr:IdScheme&gt;PracticeID&lt;/cnr:IdScheme&gt;
                      &lt;cnr:IdType&gt;Healthcare Organisation&lt;/cnr:IdType&gt;
                    &lt;/cnr:OrganisationId&gt;
                    &lt;cnr:OrganisationName&gt;National Health 
                    Service&lt;/cnr:OrganisationName&gt;
                    &lt;cnr:OrganisationAddress&gt;
                      &lt;cnr:TheAddress&gt;
                        &lt;cnr:AddressLine1&gt;Centre House&lt;/cnr:AddressLine1&gt;
                        &lt;cnr:AddressLine2&gt;799 Chichester 
                           Street&lt;/cnr:AddressLine2&gt;
                        &lt;cnr:AddressLine3&gt;London&lt;/cnr:AddressLine3&gt;
                      &lt;/cnr:TheAddress&gt;
                      &lt;cnr:AddressType&gt;Practice Address&lt;/cnr:AddressType&gt;
                    &lt;/cnr:OrganisationAddress&gt;
                    &lt;cnr:OrganisationTelecom&gt;
                      &lt;cnr:TelephoneNumber&gt;016190542350&lt;/cnr:TelephoneNumber&gt;
                      &lt;cnr:TeleType&gt;Voice&lt;/cnr:TeleType&gt;
                       &lt;/cnr:OrganisationTelecom&gt;
                  &lt;/cnr:TheOrganisation&gt;
                &lt;/pbr:RefGP&gt;
              &lt;/pbr:Referrer&gt;
           &lt;/pbr:PatientAdminRef&gt;
            &lt;/gls:TheDocument&gt;
  </code></pre>
  
  <p>So is it possible to do this? I had a go at doing this but I know for a fact i am doing it wrong as it cannot produce the result i want so any help will be much appreciated:</p>
  
  <p><strong>C# Code</strong></p>
  
  <pre><code>XDocument doc = XDocument.Parse(xml);
  XElement root = doc.Root;
  XNamespace glsNs = root.GetNamespaceOfPrefix("gls");
  XNamespace cnrNS = root.GetNamespaceOfPrefix("cnr");
  XNamespace pbrNS = root.GetNamespaceOfPrefix("pbr");
  
  var output = new StringBuilder();
  foreach (var result in doc.Descendants(gls + "PatientDem").Select(x =&gt; new {
  
    Key = (string)x.Name.LocalName,
    Value = x.Value
   }))
   {
    output.AppendLine($"{result.key} : {result.value}");
  }
  </code></pre>