2017-01-20 6 views
2

DOMのデータを特定の属性に対してどのように更新できますか?私は検索しましたが、何も見つかりませんでした。基本的には、時間という属性があります(たとえば、11時03分)。その特定の属性のテキストを「11:04」などの別のテキストに変更する必要があります。tinyxml-2を使用したXML DOM C++でのデータの更新

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 
} 

その後編集:これは私が試したものですが、それは

+1

ドキュメントが何と言っていますか?あなたのサンプルを試しましたか? –

+0

はい、動作しません。私はドキュメントを検索しましたが見つかりませんでした。 – Gimv30

+0

'Element'の正確なタイプは何ですか? –

答えて

0

あなたが属性名を受け入れSetAttributeを使用することができるというのは本当..ですFindAttribute()がプライベートである私に言っています値はです。

しかし、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を使用していることがわかります、それが鍵です。それらの

FindAttribute

一つすでに判明しているようprivateに設定されています:

クラスには2つのメソッドを公開します。しかしconst過負荷がpublicのように設定されます。

Access

関連する問題