2015-03-05 6 views
1

Я использую postgresql как базу данных. В db у меня есть один столбец, содержащий xml с кодами языков. Я хочу проанализировать этот xml и получить значение через язык отчета.Jasper Reports Parse XML column-blob

select o.name,o.price from bookdefinations o Это o.name содержит это значение XML:

<?xml version="1.0" encoding="UTF-8"?> 
<values> 
    <en-us>en value</en-us> 
    <es>es value</es> 
    <ru>ru value</ru> 
    <tr>tr value</tr> 
</values> 

Могу ли я разобрать это с выражениями Джаспера или может я синтаксического анализа при выборе из БД (я не имею ни малейшего представления, как получить язык отчета в select query и parse xml в select)

ответ

0

Вы можете сделать это непосредственно в postgresql во время выбора. PostgreSql имеет XML Type и различные XML functions.
Если вы посмотрите на эти функции, вы увидите функцию xpath, которая может быть использована для извлечения данных из типов XML во время операции выбора.

Для ссылки на xPath см. tutorial from W3Schools.

+0

Это нормально, как я уже говорил. Но как я могу взять язык отчета и использовать для этого? – kocakmstf

+0

Я не совсем понимаю ваш вопрос. Вы должны иметь возможность извлекать все, что вам нужно, непосредственно в postgresql с помощью xPath ... –

+0

Я проанализирую xml, на котором будет отображаться язык отчета. Поля xml равны кодам языков, и я возьму только одно из этих полей. – kocakmstf

1

Для jasperreport есть xmldatasource, вы можете сделать subreport и отправить blob в этот subreport как xmldatasource, тогда вы можете проанализировать xml в подзаголовке и показать контент, я не уверен, хотите ли вы показать значение или весь XML, если это отчет, я думаю, вы должны показать значения в симпатичной образом я имею в виду не как XML, проверить эту ссылку

http://jasperreports.sourceforge.net/sample.reference/xmldatasource/

+0

thats выглядит так, как я хочу, но я буду использовать его в таблице (как поле). Поэтому, если я поставлю subreport как столбец в datatable, я не уверен, что он может работать. я попробую этот подход. – kocakmstf

+0

Подрепортаж будет сгенерирован в каждой строке, если у вас есть подрегистр в области подробностей –

+0

Яшма не принимала XML-источник данных в качестве параметра. он запрашивает источник данных как файл. Я не мог найти образец о том, как отправить его как параметр. Я сосредоточился на ответе мата. во всяком случае, это был действительно хороший подход, спасибо! – kocakmstf

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