1

次のような XML ファイルがあるとします。

<holidays>
    <holiday1 val="New Years, 01/01, First half"/>
    <holiday2 val="Chirstmas, 12/25, Second half"/>
    <holiday3 val="Valentines Day, 02/14, First half"/>
<holidays>

そして、XML ファイルからデータをロードする必要がある次の見出しを持つテーブルがあります。

Holiday Name        First Half  Second Half

(表の見出しは実際にはコードではないことはわかっていますが、読みやすいようにコードブロックでフォーマットしました)

したがって、基本的に私がやりたいことは、要素に「前半」(今年の) 属性がある場合、休日名の下に休日名をロードし、前半の下に日付をロードすることです。要素に「後半」属性がある場合、休日名の下に休日名をロードしますが、後半の下に日付をロードします。最終的には次のようになります。

Holiday Name        First Half  Second Half
New Years           01/01
Chirstmas                       12/25
Valentines Day      02/14

最初に Xpath を使用して前半または後半をチェックし、その情報を使用して正しいセルを選択してデータをロードすることを考えました。ただし、私の最大の問題は、日付だけ、または休日の名前だけを選択する方法がわからないことです。

いくつかの背景情報:
-xml ファイルの形式は変更できません。それは私に与えられたものであり、やりたいことを達成することが絶対に不可能でない限り、形式を変更することはできません
-私は tinyxml を私のものとして使用していますパーサー
-C++ でこれを行ってい
ます -テーブルのセルに要素の値のようにロードする方法を知っているので、これに関する背景知識が少しあります

ありがとうございます。私の問題を理解するためにさらに情報が必要な場合は、コメントを残してください。

4

1 に答える 1

0

弾丸を噛んで属性文字列を手動で解析する必要があります。「前半」または「後半」を手動で検索し、そこにあるかどうかを確認し、ある場合はそれに基づいて何かを行う必要があります。属性内の 3 つのカンマ区切りの値をそれぞれ区切って操作する必要があります。

この単純なケースでは、何らかの形式の正規表現解析をお勧めします。または、うまくいくかもしれませんstd::string::find。それはあなたのニーズによって異なります。

于 2012-02-21T17:15:38.867 に答える