powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как получить кусок XML текста между двумя тегами?
5 сообщений из 5, страница 1 из 1
Как получить кусок XML текста между двумя тегами?
    #37098645
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть некий XML документ и XSL к нему, в сочетании с которым формируется замечательный читаемый документ для пользователя. Теперь возник вопрос пакетной обработки, т.е. файл XML должен состоять не из одного "документа", а их многих, к каждому из которых в отдельности должно быть применено XSL преобразование, а конечные документы распределены между пользователями. Как наиболее элегнтно и менее затратно "порезать" исходный XML на отдельные "документы"? Например:
есть файл
Код: plaintext
1.
2.
3.
<data>
<document_number>...</document_number>
<всякая_фигня>...</всякая_фигня>
</data>
При обработке с XSL получаем из этого читабельный документ для конечного пользователя.
Теперь надо обрабатывать такой XML файл.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<data>
<document_number> 1 </document_number>
<всякая_фигня>...</всякая_фигня>
</data>
<data>
<document_number> 2 </document_number>
<всякая_фигня>...</всякая_фигня>
</data>
И на выходе получить соответствующее количество читабельных документов (не один). Никак не пойму, как вырезать весь кусок XML между тегами <data>. Т.е. считать не DOM дерево из <data>, а XML текст.
...
Рейтинг: 0 / 0
Как получить кусок XML текста между двумя тегами?
    #37098796
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GarrickИ на выходе получить соответствующее количество читабельных документов (не один)Не выйдет - с помощью XSL-преобразования на выходе можно получить только один документ. Как вариант, сделать XSL c параметром, и вызывать в цикле столько раз, сколько нужно...

GarrickНикак не пойму, как вырезать весь кусок XML между тегами <data>. Т.е. считать не DOM дерево из <data>, а XML текст.Зачем обязательно превращать в текст? <xsl:copy-of> чем не подходит?
...
Рейтинг: 0 / 0
Как получить кусок XML текста между двумя тегами?
    #37100309
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
refregGarrickНикак не пойму, как вырезать весь кусок XML между тегами <data>. Т.е. считать не DOM дерево из <data>, а XML текст.Зачем обязательно превращать в текст? <xsl:copy-of> чем не подходит?
Я подумал, может быть порезать этот файл на несколько и затем каждый из них обработать XSL. То, что вернёт <xsl:copy-of> можно сохранить в другой файл?
...
Рейтинг: 0 / 0
Как получить кусок XML текста между двумя тегами?
    #37100343
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 06.02.2011 12:47, Garrick wrote:

> Я подумал, может быть порезать этот файл на несколько и затем каждый из них обработать XSL. То, что вернёт <xsl:copy-of>
> можно сохранить в другой файл?

А что используется для обработки XML? В Xalan есть redirect:write:

http://xml.apache.org/xalan-j/apidocs/org/apache/xalan/lib/Redirect.html

http://www.abbeyworkshop.com/howto/xslt/xslt_split/index.html
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Как получить кусок XML текста между двумя тегами?
    #37182919
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis Popov,

Толком не разобрался, у IBM'эров свои заморочки transformXML method . Решение этой проблемы было времено заморожено. Теперь вот похоже придётся заняться этим вновь. Но теперь концепция сменилась, надо не просто постругать один XML на много маленьких, но и нарезать из них PDF. Погружаюсь в изучение XSL-FO...
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как получить кусок XML текста между двумя тегами?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]