2012-03-12 46 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 

在讀取記錄,i與

分裂每個記錄

字符串[]字符串= 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標記中後尤其容易)。這也使您至少可以獲得與您的頁眉和頁腳所提供的「腐敗檢查」相同的非常適中的級別,並且如果某些客戶碰巧被命名爲「小型Bobby表RECORD_BREAK」,則不會失敗。 – Thilo 2012-03-12 02:20:27

+0

爲每條記錄添加RECORD_BREAK是一個現有的功能,所以我無法更改,我目前的要求是驗證頁眉和頁腳。 – minil 2012-03-12 02:29:23

+0

您仍然可以使用XML解析器解析文件(包含RECORD_BREAK)。如果頁眉與頁腳不匹配,它將不是有效的XML,解析器會告訴你。 – Thilo 2012-03-12 02:30:28

回答

2

理想情況下,您不需要文件中的RECORD_BREAK標記,因爲您不需要它們:您已經有記錄由標記分隔。只需使用XML解析器解析整個事物(在將其包裝到頂級CustomerInfo標記中後尤其容易)。

這也給了你至少與你的頁眉和頁腳所提供的「腐敗檢查」相同的非常適中的級別,並且如果某些顧客碰巧被命名爲「小鮑比表RECORD_BREAK」,它也不會失敗。

您仍然可以使用XML解析器解析現在的文件(其中包含RECORD_BREAK)。如果頁眉與頁腳不匹配,它將不是有效的XML,解析器會告訴你(它也會告訴你有關格式錯誤的Customer標籤內容)。結果將是一個很好的客戶節點和文本節點序列(記錄中斷)。