Jasper Reports Parse XML column-blob

1

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

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>

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

Теги:
jasper-reports

2 ответа

0
Лучший ответ

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

Для ссылки на xPath, посмотрите учебник из W3Schools.

  • 0
    Это нормально, как я уже говорил. Но как я могу взять язык отчетов и использовать для этого?
  • 0
    Я не очень понимаю ваш вопрос. Вы должны быть в состоянии извлечь все, что вам нужно, непосредственно в postgresql, используя xPath ...
Показать ещё 2 комментария
1

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

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

  • 0
    Это выглядит как то, что я хочу, но я буду использовать это в таблице (как поле). Так что, если я помещу подотчет как столбец в datatable, я не уверен, что это может работать. Я попробую этот подход.
  • 0
    Подотчет будет создан в каждой строке, если у вас есть подотчет в области сведений
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню