Я работаю над фрагментом кода для разделения файлов. Я хочу разделить плоский файл (это нормально, он работает нормально) и xml-файл. Идея состоит в том, чтобы разбивать на несколько файлов на разделение: У меня есть файл, и я хочу разбить его в x файлах (x - это параметры). Я занимаюсь разделом, беря размер файла и разделяя его на количество файлов для разделения. Затем mysolution было использовать BufferedReader и использовать его какJava split xml file
while ((n = reader.read(buffer, 0, buffer.length)) != -1) {
{
Основная проблема заключается в том, что для файла XML я не могу разделить его, но я должен разделить его на основе блока, отделенного от начала xml tag и end xml tag:
<start tag>
bla bla xml stuff
</end tag>
Поэтому я не могу вырезать блок посередине. Поэтому, если я нахожусь в половине блока, размер моего нового файла больше моего max, мне нужно будет прочитать до конца тега, а затем, чтобы начать следующий файл.
Проблема в том, что у меня есть всевозможные случаи, и немного сложно найти конечный тег. - блок считывает текст до середины концевого тега - блок считывает текст до конца концевого тега и не более другого символа после - и т. Д. и в то же время имеет петлю и считывает следующий блок. Несколько раз в конце блока, объединенного с началом следующего, у меня есть конечный тег xml. Надеюсь, у вас есть идея.
Мой вопрос: есть ли у кого-нибудь алгоритм, который делает это более точным и кто я рассматриваю все особые случаи?
Идея состоит в том, чтобы разбить файл как можно быстрее. Я не хотел использовать lib для обработки файла в виде XML-файла, потому что размер блока был меньше или очень большой, и я не знаю, хватит ли памяти. Или есть какой-то lib, который не загружает все в память?
Спасибо большое.
Ниже приведен пример моего xml-файла;
<?xml version="1.0" encoding="UTF-8" ?>
<myTag service="toto" version="1.5.18" >
<endOfPeriodTradeNotification version="1.5.18">
.............
</endOfPeriodTradeNotification>
<endOfPeriodTradeNotification version="1.5.18">
.............
</endOfPeriodTradeNotification>
<endOfPeriodTradeNotification version="1.5.18">
.............
</endOfPeriodTradeNotification>
<inventoryDate>2009-12-31</inventoryDate>
<!-- reporting date -->
<processingDate>2010-01-29T00:00:00</processingDate>
</myTag>
Я забыл одну вещь: мой файл XML может быть все написано на первой линии, поэтому я не могу догадывался, что одна линия имеет один тег.
являются тегами, вложенными? Есть ли в документе несколько «корневых» тегов? – aioobe
№. У меня есть материал, затем стартовый тег позже концевого тега. Внутри них есть теги xml (не одинаковые), а после последнего тега - некоторые вещи. –
Начальный и конечный теги являются конкретными или могут быть любыми тегами (определенными, когда размер больше max)? –