title: yaml-cpp trouble parsing mixed array/string nodes
body: <p>I have the following yaml script that I have tested here: <a href="http://yaml-online-parser.appspot.com/" rel="nofollow">online yaml parser</a></p>
  
  <pre><code>testcases:
  - testcase:
      desc: 'TEST TC1'
      requirement-ref: Doors-10.1.1.0
      given:
        text: 'A UUT, TEST2 and TEST are connected'
        devices:
        - Device:
            Type: UUT
            Status: Connected
        - Device:
            Type: TEST
            Status: Connected
        - Device:
            Type: TEST2
            Status: Connected
  
  - testcase: # next test case...
      desc: 'TEST TC2'
  </code></pre>
  
  <p>Then I have the following code:</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;unistd.h&gt;
  #include &lt;ctime&gt;
  #include "yaml-cpp/yaml.h"
  
  using namespace std;
  
  void load_config()
  {
      cout &lt;&lt; "loading yaml file\n";
  
      YAML::Node testfile = YAML::LoadFile("BDD-test-case.yaml");
      if (testfile["testcases"])
      {
          cout &lt;&lt; "found testfile[\"testcases\"] - size: " &lt;&lt; testfile["testcases"].size() &lt;&lt; "\n";
          YAML::Node testcases = testfile["testcases"];
  
          for (int i = 0; i &lt; testcases.size(); i++)
          {
              YAML::Node testcase = testcases[0];
              cout &lt;&lt; "testcase " &lt;&lt; i &lt;&lt; ":\n";
              cout &lt;&lt; "\tsize:" &lt;&lt; testcase.size() &lt;&lt; "\n";
              cout &lt;&lt; "\tIsNull:" &lt;&lt; testcase.IsNull() &lt;&lt; "\n";
  
              YAML::Node desc = testcase["desc"];
              if (desc)
              {
                  std::string desc_str = desc.as&lt;std::string&gt;();
                  cout &lt;&lt; "desc: " &lt;&lt; desc_str.c_str() &lt;&lt; "\n";
              }
          }
      }
      cout &lt;&lt; "yaml - done\n";
  }
  
  int main(int argc, char *argv[])
  {
      long double lastTimeMS = time(0)*1000;
      long double CurrTimeMS = time(0)*1000;
      int localPort = 31010;
      int remotePort = 31011;
      int procId = 1;
  
      load_config();
  
      cout &lt;&lt; "Hello World!" &lt;&lt; endl;
      return 0;
  }
  </code></pre>
  
  <p>I get the following output:</p>
  
  <pre><code>loading yaml file
  found testfile["testcases"] - size: 2
  testcase 0:
          size:1
          IsNull:0
  testcase 1:
          size:1
          IsNull:0
  yaml - done
  Hello World!
  </code></pre>
  
  <p>I am trying to parse through each testcase and print out the value of "desc" field.</p>
  
  <p>As you can see from the debug I am able to find the top level node <code>testcases</code>. I check its size and it is 2 - which is correct. Then I loop through the testcases and store each as a new node <code>testcase = testcases[i]</code>. So far so good. However now I want to see what is inside each testcase - I should find a tsetcase["desc"]... but I don't see that. Infact testcase seems to be null...</p>
  
  <p>What am I doing wrong here?</p>