2016-04-21 4 views
0

Я обрабатываю набор двоичных файлов и создаю дерево для каждого файла (поскольку они по сути являются иерархическими). Я хотел бы использовать XPath для поиска и выбора узлов в файлах и хотел бы не писать собственный движок XPath. Запросы XPath будут предоставлены во время выполнения.Создать XML-документ вручную или реализовать dom-интерфейсы или ...?

  • Имеет ли смысл пытаться реализовать интерфейсы dom для классов, составляющих мое дерево (что делает его XML-документом)? Таким образом, я мог бы попробовать и накормить мой duckish XML-документ XPathExpression.
  • Должен ли я просто пропустить пулю и реализовать собственный движок XPath, который будет «работать» на моих классах?
  • Должен ли я вместо этого просто вручную создавать документы XML и оплачивать стоимость toString?
  • Или есть какой-то очень простой способ разбора моих двоичных файлов в XML, который я полностью пропустил, и быстро анализируется и выполняется быстро для выполнения запросов XPath?

Я также не хочу тратить свое время, реализуя интерфейсы dom только для того, чтобы узнать, что XPathExpression задохнется или что я также должен реализовать XPathExpression.

Я действительно не хочу писать свой собственный движок XPath.

+0

Можно ли преобразовать эти двоичные файлы в файлы XML? это, пожалуй, самый простой способ –

ответ

0

Внедрение интерфейсов DOM было простым и в основном безболезненным решением. Я с удивлением обнаружил, что это сработало! Оказывается, в библиотеке XPath для Java все равно, пока вы кормите ее чем-то, что реализует интерфейсы. Вам даже не нужно выполнять большинство методов. Вам нужно только реализовать (некоторые из) геттеров, все остальное может просто выбросить исключение или исключение только для чтения.

Для тех, кто читает это в будущем, вы должны реализовать полный интерфейс, а затем использовать методы для построения дерева. Причина в том, что уродливо настраивать отношения родственных и родительских отношений. Вам все равно придется писать код, а также поместить его в нужное место.

Смежные вопросы