title: How to parse youtube xml without using youtube api
body: <p>I want to let users in my Facebook application post YouTube videos.
  Any user can put a YouTube link in an input text box. The behavior identical to posting a video on their Facebook wall.
  The application extracts the video id from the link and creates a different YouTube link.
  <br>For example, if the link is: <a href="http://www.youtube.com/watch?v=JBWd_yJPbr8&amp;feature=related" rel="nofollow">http://www.youtube.com/watch?v=JBWd_yJPbr8&amp;feature=related</a> <br>The id is: <code>JBWd_yJPbr8</code> and the request becomes&nbsp;http://gdata.youtube.com/feeds/api/videos/JBWd_yJPbr8</p>
  
  <p>The problem is to parse the returned XML. This is not standard XML, or at least I have not gotten it to work using standard XML parsers. How can i parse this XML? I need a thumbnail, title and description...</p>
  
  <pre><code>using (XmlReader reader = XmlReader.Create(new StringReader(xmlString)))
  {
      XmlWriterSettings ws = new XmlWriterSettings();
      ws.Indent = true;
      using (XmlWriter writer = XmlWriter.Create(output, ws))
      {
  
  
  
  
              while (reader.Read())
              {
                  switch (reader.NodeType)
                  {
                      case XmlNodeType.Element:
                          writer.WriteStartElement(reader.Name);
                          break;
                      case XmlNodeType.Text:
                          writer.WriteString(reader.Value);
                          break;
                      case XmlNodeType.XmlDeclaration:
                      case XmlNodeType.ProcessingInstruction:
                          writer.WriteProcessingInstruction(reader.Name, reader.Value);
                          break;
                      case XmlNodeType.Comment:
                          writer.WriteComment(reader.Value);
                          break;
                      case XmlNodeType.EndElement:
                          writer.WriteFullEndElement();
                          break;
                  }
              }
  
          }
      }
  </code></pre>
  
  <p>Tis case is throw exception : </p>
  
  <pre><code>case XmlNodeType.Element:
  writer.WriteStartElement(reader.Name);
  </code></pre>
  
  <p>Element type not valid</p>