Программа для чтения верхнего и нижнего колонтитула файла - PullRequest
0 голосов
/ 12 марта 2012

У меня есть текстовый файл, который имеет много записей.Каждая запись является элементом xml.каждая запись разделяется текстом - RECORD_BREAK.

Ex

<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 [] strings = 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 Ответ

2 голосов
/ 12 марта 2012

В идеале у вас не должно быть маркеров RECORD_BREAK в файле, потому что они вам не нужны: у вас уже есть записи, разделенные тегами. Просто проанализируйте все это с помощью синтаксического анализатора XML (особенно легко после включения его в тег CustomerInfo верхнего уровня).

Это также дает вам по крайней мере тот же самый очень скромный уровень «проверки коррупции», который обеспечат ваш верхний и нижний колонтитулы, и не потерпит неудачу, если какой-нибудь клиент окажется с именем «Little Bobby Tables RECORD_BREAK».

Вы по-прежнему можете анализировать файл в том виде, в каком он есть сейчас (с RECORD_BREAK в нем), используя анализатор XML. Если верхний колонтитул не совпадает с нижним колонтитулом, он не будет действительным XML, и анализатор сообщит вам (он также сообщит вам о неверно сформированном содержимом тега Customer). Результатом будет хорошая последовательность узлов Customer и текстовых узлов (разрывы записей).

...