2

我想知道如何更新 DOM 上某个属性的数据?我已经搜索过,但我找不到任何东西。基本上,我有一个名为 Hour 的属性(例如它是“11:03”),我希望将该特定属性的文本更改为“11:04”或任何其他不同的文本。

if( strcmp(Code1,Code2) == 0 )
{
    strcpy(New,NewHour);
    Element->FindAttribute("Hour")->SetAttribute(New); // here I want it to be changed in the DOM but I dont know how to do it
}

稍后编辑:这是我尝试过的,但它告诉我 FindAttribute() 是私有的..

4

1 回答 1

1

确实,您可以使用SetAttributewhich 接受属性名称作为参数。

但是,TinyXml2确实有一种使用方法,FindAttribute因为我的应用程序中有以下代码:

// We need to get the assistant
const XMLAttribute *pAttrAssistant = const_cast<const XMLElement*>(pStudent)->FindAttribute("Assistant");
if (pAttrAssistant != nullptr)
{
    LPCTSTR szAssistant = CA2CT(pAttrAssistant->Value(), CP_UTF8);
    SetStudentInfo(eSchool, eAssign, strStudent, szAssistant, iStudyPoint);
}
else
{
    // TODO: Throw exception if Assistant attribute missing
}

如您所见,我使用该FindAttribute方法并且没有编译错误。如果您仔细观察,您会发现我正在使用const,这就是关键。

该类公开了两个方法:

查找属性

private正如您已经发现的那样,其中之一设置为。但const重载设置为public

使用权

于 2018-03-01T08:50:25.810 回答