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

属性名をパラメータとしてSetAttribute受け入れるものを使用できることは事実です。

ただし、アプリケーションに次のコードがあるため、 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していることがわかります。それが鍵です。

このクラスは、次の 2 つのメソッドを公開します。

FindAttribute

そのうちの 1 つは、privateすでにわかっているように設定されています。ただし、constオーバーロードは次のように設定されpublicます。

アクセス

于 2018-03-01T08:50:25.810 に答える