Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
DivineArtS 18.05.2010 12:13
Возник вопрос - XML файл весит 4500 Kb потому что там текста уйма. понятно, что пользователю не надо все стразу, главу за главой он бы почитал, но не все же грузить. весь документ удалось отпарсить с помощью XSL a по частям, используя xnode - никак. но мне очень важно использование XLS! как быть? вот обработчик XLS<?xml version="1.0" encoding="windows-1251" ?> <!-- DWXMLSource="bible.xml" --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="body"> <html> <head><title><xsl:value-of select="book-title" /></title> <link href="bible.css" rel="stylesheet" type="text/css" /> </head> <body><xsl:apply-templates select="testament" /></body> </html> </xsl:template> <xsl:template match="testament"> <xsl:apply-templates select="title" /> <xsl:apply-templates select="book" /> </xsl:template> <xsl:template match="book"> <table cellpadding="0" cellspacing="0"><tr><td class="book" colspan="2"><xsl:apply-templates select="title" /></td></tr> <xsl:apply-templates select="chapter" /></table> </xsl:template> <xsl:template match="chapter"> <tr> <td class="chapter_head"> <xsl:apply-templates select="title" /></td><td class="text"><xsl:apply-templates select="p" /></td></tr> </xsl:template> <xsl:template match="title"> <h1 ><xsl:value-of select="." /></h1> </xsl:template> <xsl:template match="p"> <p><xsl:value-of select="." /></p> </xsl:template> </xsl:stylesheet>вот пример разметки xml
<?xml version="1.0" encoding="windows-1251"?> <body> <book-title>БИБЛИЯ</book-title> <testament> <title>Ветхий Завет</title> <book> <title>Первая книга Моисеева. БЫТИЕ</title> <chapter> <title>1</title> <p>1 В начале сотворил Бог небо и землю.</p> <p>2 Земля же была безвидна и пуста, и тьма над бездною, и Дух Божий носился над водою.</p> ... </chapter> </book> </testament> </body>и вот вызов этого всего
# входной xdoc документ $sourceDoc[^xdoc::load[/bible/${form:book}.xml]] # преобразование xdoc документа шаблоном article.xsl $transformedDoc[^sourceDoc.transform[/bible/bible.xsl]] # выдача результата в HTML виде ^transformedDoc.string[ $.method[html] ]я пытался использовать select, но тогда не вызвать ^sourceDoc.transform