Я знаю, что, возможно, здесь есть кое-что очевидное, чего мне не хватает, но это уже несколько дней сводит меня с ума.
Вот простая функция, которую я написал, которая должнанайдите первый тег в документе XML на данный момент:
void parse_weather_file(const char* weatherFileName, WeatherDataAsPWMValues *wd)
{
if (wd == NULL) return;
std::cout << weatherFileName << std::endl;
tinyxml2::XMLDocument doc(weatherFileName);
tinyxml2::XMLNode *root = doc.FirstChild();
if (root == NULL) std::cout << "Error" << std::endl;
}
Вот XML-документ, который я пытаюсь проанализировать:
<!-- Sample output of openWeatherMap API -->
<?xml version="1.0" encoding="utf-8"?>
<current>
<city id="2643741" name="City of London">
<coord lon="-0.09" lat="51.51">
<country>GB</country>
<sun rise="2015-06-30T03:46:57" set="2015-06-30T20:21:12">
</city>
<temperature value="72.34" min="66.2" max="79.88" unit="fahrenheit"/>
<humidity value="43" unit="%">
<pressure value="1020" unit="hPa">
<wind>
<speed value="7.78" name="Moderate breeze">
<direction value="140" code="SE" name="SouthEast">
</wind>
<clouds value="0" name="clear sky">
<visibility value="10000">
<precipitation mode="no">
<weather number="800" value="Sky is Clear" icon="01d">
<lastupdate value="2015-06-30T08:36:14">
</current>
А вот вывод, который я получаю изfunction:
test.xml
Error
Это предполагает, что root
равно NULL в конце функции, но я не уверен, почему это так.