Как я могу разобрать пустой элемент с tinyxml2?

Используя tinyXml2, я могу разобрать

<MSG_TIME>2010-07-01 14:28:20</ MSG_TIME>

просто отлично, но

<MSG_TIME></ MSG_TIME>

а также

<MSG_TIME />

оба бросают исключения в C ++, когда это совершенно правильный XML (насколько мне известно). У кого-нибудь есть решение или предложение для этого? Я не контролирую источник этого XML, и мне нужно быть терпимым к ошибкам.

2

Решение

Этот ответ предполагает, что вы пытаетесь загрузить действительный XML с пустым элементом.

XMLElement::GetText() возвращается nullptr если элемент пуст, то вы можете сделать простую проверку следующим образом:

std::string szData;

// Get the element
XMLElement pElement = xmlDoc.FirstChildElement("MyElement");

// Check whether the element contains data & if so, extract it as text
if (pElement->GetText() != nullptr) szData = poElement->GetText();

Этот вопрос на самом деле указал на ошибку с TinyXML2 учебник Я написал несколько месяцев назад, так что спасибо за публикацию! 🙂

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]