2012-03-12 8 views
0

私は多くのレコードを持つテキストファイルを持っています。各レコードはxml要素です。各レコードはテキストで区切られています - RECORD_BREAK。ファイルのヘッダーとフッターを読み取るプログラム

<customer><name>John</name><phone>123-345-1123</phone></customer> 
RECORD_BREAK 
<customer><name>John</name><phone>123-345-1123</phone></customer> 
RECORD_BREAK 
<customer><name>John</name><phone>123-345-1123</phone></customer> 
RECORD_BREAK 
<customer><name>John</name><phone>123-345-1123</phone></customer> 
RECORD_BREAK 

レコードを読みながら、私は

のString []の文字列= xml.split( "RECORD_BREAK")によって各レコードを分割します。

今、私はファイルのヘッダーとフッターを追加する必要があります。これは、ファイルが壊れていないことを識別するためです。ファイルのヘッダとフッタを読み込む方法。ヘッダーとフッターは簡単です

<CustomerInfo> 
<customer><name>John</name><phone>123-345-1123</phone></customer> 
RECORD_BREAK 
<customer><name>John</name><phone>123-345-1123</phone></customer> 
RECORD_BREAK 
</CustomerInfo> 

レコードを分割する前に、レコードの開始時と終了時にタグとタグを確認する方法を教えてください。

+1

なぜXMLファイルにレコード区切りマーカーが必要ですか?すでにタグで区切られたレコードがあります。 XMLパーザで全部を解析するだけです(特に、最上位のCustomerInfoタグにラップした後は簡単です)。これは、ヘッダーとフッターが提供する "腐敗チェック"と同じレベルのものを提供します。また、 "Little Bobby Tables RECORD_BREAK"という名前の顧客がいると失敗しません。 – Thilo

+0

レコードごとにRECORD_BREAKを追加することは既存の機能であるため、私は変更できません。現在の要件はヘッダーとフッターを確認することです。 – minil

+0

XMLパーサーを使用して(RECORD_BREAKを含む)ファイルを解析できます。ヘッダーがフッターと一致しない場合、ヘッダーは有効なXMLではなくなり、パーサから通知されます。 – Thilo

答えて

2

これらのマーカーが不要なので、理想的にはファイル内にRECORD_BREAKマーカーがありません。既にタグで区切られたレコードがあります。 XMLパーザで全部を解析するだけです(特に、最上位のCustomerInfoタグにラップした後は簡単です)。

これは、ヘッダーとフッターが提供する "堕落チェック"と同じレベルになります。また、 "Little Bobby Tables RECORD_BREAK"という名前の顧客がいると失敗しません。

XMLパーサーを使用して、ファイルをそのまま(RECORD_BREAKで)解析することができます。ヘッダーがフッターと一致しない場合は、有効なXMLではなく、パーサーがあなたに通知します(不正な顧客タグの内容についても表示されます)。結果は顧客ノードとテキストノードの素敵なシーケンスになります(レコード分割)。

関連する問題