В моем текущем проекте мне нужно изменить несколько XML-документов, используя tinyXML.
Я не нашел функцию SetText(const char*). Я знаю, что вместо этого вам нужно создать TiXmlText и связать его с элементом:
TiXmlElement* pParent = ...;
TiXmlText* pText = new TiXmlText(szText);
pParent->LinkEndChild(pText);
Однако, если у узла уже есть дочерний элемент Text, насколько я понимаю, вместо этого я должен изменить его значение.
Я также не нашел что-то вроде FirstChildText() или GetTextNode() и т. д. Думаю, используя эту строку
TiXmlText* pText = pParent->FirstChild()->ToText();
вызовет проблемы, если у pParent уже есть другие дочерние элементы, кроме текста (в моем случае атрибут, комментарий - я могу игнорировать элементы/смешанный режим), поэтому я закончил итерацию по всем дочерним элементам, проверяя их Type() как TINYXML_TEXT.
Есть ли лучший способ сделать это или, может быть, существующий набор вспомогательных функций (включая setText), который я еще не нашел?