0 / 0 / 0
Регистрация: 13.10.2005
Сообщений: 848
|
|
1 | |
XSLT Saxon05.10.2010, 17:27. Показов 78959. Ответов 107
Метки нет (Все метки)
0
|
05.10.2010, 17:27 | |
Ответы с готовыми решениями:
107
XSLT и т.д. Readviewentries & Xslt Notesxsltransformer для Xslt XSLT 3.0 |
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
|
13.01.2013, 16:19 | 41 |
либо передавать уже содержимое в виде стрингов (а внутри преобразовывать как я указал прежде)
выход - тоже в стринг <!--shcode--><pre><code class=java>//import java.io.File; import java.io.*; .... public static String TrasformFFF(String sourceXML, String sourceXSL) throws TransformerException { try { System.setProperty("javax.xml.transform.TransformerFactory", "net.sf.saxon.TransformerFactoryImpl"); // Create a transform factory instance. TransformerFactory tfactory = TransformerFactory.newInstance(); // Create a transformer for the stylesheet. Transformer transformer = tfactory.newTransformer(new StreamSource(new ByteArrayInputStream(sourceXSL.getBytes()))); // Transform the source XML to System.out. ByteArrayOutputStream resultXML=new ByteArrayOutputStream(); transformer.transform(new StreamSource(new ByteArrayInputStream(sourceXML.getBytes())), new StreamResult(resultXML)); try { String out = new String(resultXML.toByteArray(), "UTF-8"); return out; } catch (Exception e) { handleException(e); } } catch (Exception ex) { handleException(ex); } return ""; }[/CODE] Добавлено: здесь XSL и XML уже содержимое, а не имена файлов!
0
|
0 / 0 / 0
Регистрация: 27.08.2011
Сообщений: 71
|
||||||
16.01.2013, 11:51 | 42 | |||||
Imike,
подскажите еще, пожалуйста, как получить стринг ответа? Конструкция вида:
0
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
|
16.01.2013, 13:03 | 43 |
Сообщение от HelenHelen
0
|
0 / 0 / 0
Регистрация: 27.08.2011
Сообщений: 71
|
||||||
16.01.2013, 15:51 | 44 | |||||
Сообщение от lmike
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Вот код функции сейчас:</div></div><div class="sp-body"><div class="sp-content">
0
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
||||||
16.01.2013, 16:05 | 45 | |||||
ф-ция ReadText - ... корявая, чем её заменить - я не знаю, но она не даёт UTF-8 (вернее - там надо мудрить)
XSL яб получал напрямую из конфигурационного дока:
ругань будет типа
0
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
||||||
16.01.2013, 17:08 | 46 | |||||
короче так<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">"LS"</div></div><div class="sp-body"><div class="sp-content">
throws TransformerException { try { System.setProperty("javax.xml.transform.TransformerFactory", "com.icl.saxon.TransformerFactoryImpl"); //"net.sf.saxon.TransformerFactoryImpl"); // Create a transform factory instance. TransformerFactory tfactory = TransformerFactory.newInstance(); // Create a transformer for the stylesheet. Transformer transformer = tfactory.newTransformer(new StreamSource(new ByteArrayInputStream(sourceXSL.getBytes("UTF-8")))); // Transform the source XML to ByteArray ByteArrayOutputStream resultXML=new ByteArrayOutputStream(); transformer.transform(new StreamSource(new ByteArrayInputStream(sourceXML.getBytes("UTF-8"))), new StreamResult(resultXML)); try { String out = new String(resultXML.toByteArray(), "UTF-8"); System.out.println ("success, size=" + out.length()); System.out.println (out); return out; } catch (Exception e) { handleException(e); } } catch (Exception ex) { handleException(ex); } return ""; }[/CODE] в джаве:т.к. трасформерм я взял саксон 6.5 (у мя жвм от 7-ки - 1.4) - то закоментил новый трасформер (тот кот. был изначально) поставил принты в консоль (после отладки надо убрать) в LS результат полностью не выводится (в msgbox видно тока шапку, может к.л. символы мешают), по размеру - совпадает с джавой, но разбираться я не стал , в джава консоле - нормальный резалт отображает
0
|
0 / 0 / 0
Регистрация: 27.08.2011
Сообщений: 71
|
||||||
16.01.2013, 17:37 | 47 | |||||
XSL-то я могу взять из рич-текста (спасибо за идею!! ), а как быть с тем, что у меня идет преобразование dxl в потоке? Я имею в виду кусок:
0
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
|
16.01.2013, 17:51 | 48 |
следующий пост
там прикрутить кодировку в джаве, т.е после readtext, в джава кодировку ставим (принудительно)
0
|
1 / 1 / 0
Регистрация: 07.12.2009
Сообщений: 1,197
|
|
16.01.2013, 20:13 | 49 |
А что даёт строка
<!--shcode--><pre><code class=java>System.setProperty("javax.xml.transform.TransformerFactory", "com.icl.saxon.TransformerFactoryImpl");[/CODE]?
0
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
|
16.01.2013, 21:45 | 50 |
Сообщение от VladSh
названия говорят сами за себя, следующий код смотрит на это св-во
0
|
0 / 0 / 0
Регистрация: 27.08.2011
Сообщений: 71
|
|
17.01.2013, 07:15 | 51 |
А может можно сделать все на яве, начиная от выгрузки dxl? Чтобы не было проблем с передачей потока?
И Imike, не могли бы вы выложить ваш jar-файл для саксона 6.5? А то то, что я сама скачала, ломало мне клиента((
0
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
|
17.01.2013, 12:51 | 52 |
ну не знаю - что там может поломать клиента...
я скачал с офсайта, выложу, разумеется (мне не жалко ) Посмотреть вложение saxon_jdom.zip с передачей потока проблемы нет - он просто не передаётся - передаем стринги и там я не вижу проблем (за искл. принудительной кодировки), вопрос больше в том - что с результатом делать если отправлять дальше, в тырнет - то удобнее джава если работать на клиенте - бридж (вызовы из формочек и т.п.)
0
|
0 / 0 / 0
Регистрация: 27.08.2011
Сообщений: 71
|
|
17.01.2013, 20:06 | 53 |
Все равно та же ошибка, что и раньше, на каждом клике((
тема с кодировкой не помогает (правда, на 9м саксоне). Все равно ответ пустой. Похоже, что придется возвращаться к идее с файликами, как это ни печально((, т.е. записать предварительный результат в файл (или WriteText тоже косячная?... я пока не пробовала), а оттуда уже брать в ява-парсер...
0
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
|
17.01.2013, 20:26 | 54 |
выложите базу - чета вы не так делаете
вы ошибки в консоли смотрите?
0
|
1 / 1 / 0
Регистрация: 07.12.2009
Сообщений: 1,197
|
|
17.01.2013, 22:51 | 55 |
Сообщение от lmike
0
|
0 / 0 / 0
Регистрация: 27.08.2011
Сообщений: 71
|
|
19.01.2013, 15:04 | 56 |
Выкладываю свою базу.
В первом документе лежит XSL, как вы советовали. Во втором - документ, который должен трансформироваться в dxl. Нужно его выделить кареткой и запустить агент testProcess. Сам процесс описан в процедуре ComplexHandler.Process. Java-код, который я сейчас пытаюсь добить (т.е. с получением на вход стринга), находится в библе Copy of libXMLTransform. Понять, как запустить ява-консоль, мне так и не удалось, хотя прогуглила этот вопрос.
0
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
|
19.01.2013, 20:57 | 57 |
след. неделю буду на конференции... не уверен, что смогу посмотреть
консоль , в 8.5 - Tools -> Show Java Debug Console Добавлено:
Сообщение от VladSh
0
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
|
24.01.2013, 16:42 | 58 |
Сообщение от HelenHelen
0
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
||||||
24.01.2013, 17:17 | 59 | |||||
ещё, в коде - "баден-баден":
0
|
0 / 0 / 0
Регистрация: 27.08.2011
Сообщений: 71
|
|
17.02.2013, 14:31 | 60 |
Добрый день всем!
SAXparser на джаве в принципе заработал, вся конструкция, которая вокруг него, тоже. Однако запускается все это через раз: требуется какое-то нереальное шаманство вроде запустить дебагер лотусскрипта - открыть джава-консоль, наверное, еще что-то, и тогда все работает отлично и в полном объеме. Перезагрузка лотусового клиента - и все, уже ничего не работает вообще... Не понимаю, как такое может быть, потому что в принципе код рабочий и отлаженный... Подскажите, пожалуйста, как решить такую проблему?
0
|
17.02.2013, 14:31 | |
17.02.2013, 14:31 | |
Помогаю со студенческими работами здесь
60
XSLT XSLT рекурсия Xslt преобразование Меню на XSLT Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |