4

tinyXml2を使用して、解析できます

<MSG_TIME> 2010-07-01 14:28:20 </ MSG_TIME>
大丈夫ですが
<MSG_TIME> </ MSG_TIME>
<MSG_TIME />
(私の知る限り)完全に有効なXMLである場合、どちらもC++で例外をスローします。誰かがこれに対する修正や提案を持っていますか?私はこのXMLのソースを管理しておらず、エラー耐性が必要です。

4

1 に答える 1

6

This answer assumes you're trying to load valid XML with an empty element.

XMLElement::GetText() returns nullptr if the element is empty, so you can do a simple check like this:

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();

This question actually pointed out a bug with the TinyXML2 tutorial I wrote a few months ago, so thanks for posting it! :)

于 2014-07-27T02:32:05.427 に答える