Я пытаюсь сделать сайт более динамичным, разделив его на части. У меня был файл XML для первой страницы, который теперь был преобразован в 4 файла: index.xml, menu.xml, sidebar.xml и footer.xml.
(обновлено)
Я правильно включил XML в файл index.xsl. Теперь мне нужно включить .xls, который они будут использовать. На самом деле все это находится в одном файле и работает нормально, так что XML include решены.
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="menu" select="document('../menu.xml')"/>
<xsl:param name="sidebar" select="document('../sidebar.xml')"/>
<xsl:param name="footer" select="document('../footer.xml')"/>
<xsl:template match="/">
<!-- Split header.xsl -->
<html lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title><xsl:value-of select="page/title" /></title>
<link rel="stylesheet" type="text/css" href="css/main.css" />
<script type="text/javascript" src="js/custom.js"></script>
</head>
<body>
<div class="content">
<div class="header">
<div id="tabs" class="menu">
<ul>
<xsl:for-each select="$menu/menu/category">
<li><a><xsl:attribute name="href"><xsl:value-of select="link" /></xsl:attribute><xsl:value-of select="name"/></a></li>
</xsl:for-each>
</ul>
</div>
</div>
<div class="body">
<!-- End Split header.xsl -->
<div class="body_izqda">
<xsl:for-each select="page/news/contents/entry">
<h2><xsl:value-of select="title" /></h2>
<p><xsl:value-of select="text" /></p>
</xsl:for-each>
</div>
<!-- Split sidebar.xml -->
<div class="body_dcha">
<ul>
<xsl:for-each select="$sidebar/sidebar/results/category">
<li>
<a><xsl:attribute name="href"><xsl:value-of select="link" /></xsl:attribute><xsl:value-of select="name" /></a>
</li>
</xsl:for-each>
</ul>
</div>
<!-- End Split sidebar.xml -->
<!-- Split footer.xml -->
<div class="clear">
</div>
</div>
<div class="footer">
<ul>
<xsl:for-each select="$footer/footer/entry">
<li><a><xsl:attribute name="href"><xsl:value-of select="link" /></xsl:attribute><xsl:value-of select="title" /></a></li>
</xsl:for-each>
</ul>
</div>
</div>
</body>
</html>
<!-- End Split footer.xml -->
</xsl:template>
</xsl:stylesheet>
Кстати, я хочу разделить эти части XLST с файлами XLS. Я пытался с <xsl:include>
, но я не могу заставить его работать с меню $ param.
Я маркировал Разделить и Завершить разделение , где мне нужно разделить документ
Я уже пытался решить с первым ответом @svick, но разделив его на отметки, которые я сделал, класс XSLTPRocessor для PHP дает мне:
Предупреждение: XSLTProcessor :: importStylesheet () [xsltprocessor.importstylesheet]: импорт элемента разрешен только как дочерний элемент таблицы стилей
Итак, что-то не так с разделением по способу, которым я занимаюсь, и затем включением.
Как я могу это решить?
Заранее спасибо!
NOTE1
head.xsl:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title><xsl:value-of select="page/title" /></title>
<link rel="stylesheet" type="text/css" href="css/reset-min.css" />
<link rel="stylesheet" type="text/css" href="css/main.css" />
<link rel="stylesheet" type="text/css" href="css/jquery-ui.css" />
</head>
</xsl:template>
</xsl:stylesheet>