title: How to get value from a specific child element in XML using XmlReader?
body: <p>Here's the XML string.</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-16"?&gt;
  &lt;questionresponses&gt;
    &lt;question id="dd7e3bce-57ee-497a-afe8-e3d8d25e2671"&gt;
      &lt;text&gt;Question 1?&lt;/text&gt;
      &lt;response&gt;abcdefg&lt;/response&gt;
      &lt;correctresponse&gt;123&lt;/correctresponse&gt;
    &lt;/question&gt;
    &lt;question id="efc43b1d-048f-4ba9-9cc0-1cc09a7eeaf2"&gt;
      &lt;text&gt;Question 2?&lt;/text&gt;
      &lt;response&gt;12345678&lt;/response&gt;
      &lt;correctresponse&gt;123&lt;/correctresponse&gt;
    &lt;/question&gt;
  &lt;/questionresponses&gt;
  </code></pre>
  
  <p>So how could I get value of <code>&lt;response&gt;</code> element by given question Id? Say, if I give id value = "dd7e3bce-57ee-497a-afe8-e3d8d25e2671",  I'd like to have string value <code>abcdefg</code> returned as result.</p>
  
  <pre><code>var xmlstr = "content from above xml example";
  using (var reader = XmlReader.Create(new StringReader(xmlstr)))
  {
      while(reader.Read())
      {
          if(reader.IsStartElement())
          {
              var attr = reader["id"];
              if(attr != null &amp;&amp; attr == "dd7e3bce-57ee-497a-afe8-e3d8d25e2671")
              {
                  if(reader.ReadToDescendant("response"))
                  {
                      result = reader.Value; // &lt;= getting empty string? So what's wrong?
                      break;
                  }
              }
          }
      }
  }
  </code></pre>