Сопоставление содержимого двоичного файла с тегами (Java) - PullRequest
1 голос
/ 06 января 2010

У меня есть конверт, который я передаю через розетку. Как

<task>
<doc>
This is the contents of a file
</doc>
</task>

Отлично работает с текстовыми документами, используя шаблон типа "<doc>(.*?)</doc>", Pattern.DOTALL но поместите туда содержимое слова doc и не сможете его достать. Есть идеи? Jim

Ответы [ 2 ]

1 голос
/ 06 января 2010

Кодируйте Word Doc в base64, а затем поместите его в оболочку xml.

Apache commons предлагает достойный кодер / декодер: http://commons.apache.org/codec/

0 голосов
/ 06 января 2010

Вы упомянули, что отправляете данные через сокет, так что вы можете свободно использовать любой протокол (даже если вы используете один!), Какой захотите. Я думаю, я бы сделал что-то вроде этого:

Отправьте через сокет следующее:

command     : 1 byte (command, enum, let '1' signifiy add_task)
header_size : 4 byte (1 int, size of header. Header is a XML snippet of meta data like doc_name)
doc_size    : 4 byte (1 int, size of raw document )
header_data : header_size bytes of data, interpret as an xml string
doc_data    : doc_size bytes, interpret as your raw data type

Конечно, существует много протоколов более высокого уровня, которые могут справиться с этим и многое другое. По крайней мере, так вы избегаете странных escape-последовательностей, base64, regex и других частей, которые могут привести к неприятностям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...