C++ TinyXml中是否有类似GetTextNode的内容?

C++ TinyXml中是否有类似GetTextNode的内容?,c++,tinyxml,C++,Tinyxml,在我当前的项目中,我必须使用tinyXML修改几个XML文档 我没有找到函数SetText(const char*)。我知道您必须创建TiXmlText并将其链接到元素: TiXmlElement* pParent = ...; TiXmlText* pText = new TiXmlText(szText); pParent->LinkEndChild(pText); 但是,如果节点已经有一个文本子节点,根据我的理解,我必须修改它的值 我也没有找到像FirstChildText()或G

在我当前的项目中,我必须使用tinyXML修改几个XML文档

我没有找到函数SetText(const char*)。我知道您必须创建TiXmlText并将其链接到元素:

TiXmlElement* pParent = ...;
TiXmlText* pText = new TiXmlText(szText);
pParent->LinkEndChild(pText);
但是,如果节点已经有一个文本子节点,根据我的理解,我必须修改它的值

我也没有找到像FirstChildText()或GetTextNode()之类的东西

TiXmlText* pText = pParent->FirstChild()->ToText();
如果pParent已经有文本以外的其他子项(在我的例子中是属性,comment-我可以忽略元素/混合模式),则会导致问题,因此我最终迭代了所有子项,检查它们的Type()是否为TINYXML_text

有没有更好的方法,或者可能是我还没有找到的一组现有帮助函数(包括setText)?

setText()在TinyXML-2中受支持,但在TinyXML-1中不受支持。它没有“智能”,并且假设第一个子节点是文本节点。如果您知道没有子节点,或者只有子文本节点,那么与SetText()几乎等价的是:

如果您有选择地替换文本,例如跳过您提到的注释,那么您必须进行迭代。这方面没有内置的功能。但是你可以在找到文本后更改它。无需创建新的文本节点即可更改文本:

pText->SetValue("this is my new text");
pText->SetValue("this is my new text");