Ответ
Misha v.3 16.12.2005 19:37
работа со связкой xml/xsl вместо html выглядит несколько иначе.
сначала вы формируете xml (парсером например). данные в xml могут следовать в произвольном порядке (не... естественно если это не параграфы с текстом). когда xml готов он трансформируется в html с помощью xslt шаблона. именно xslt шаблон формирует страницу. и уже при формировании <title/> он может слазить в любой элемент вашего xml-я чтобы достать нужный заголовок. не возникает ситуации когда нужно добавить в страницу какие-то данные, которые в данный момент ещё не обсчитаны, ибо когда xml готов, можете считать что все данные уже есть.
но за все приходится платить: трансформация достаточно рессурсоемкая операция, но... очень удобно :)
в результате упоминаемых вами проверок при формировании xml-я оказывается меньше. кроме того один раз написав код, выдающий xml можно лишь исправляя xslt шаблон делать сайты очень сильно различающиеся внешним видом.
к примеру для вашего случая при формировании xml можно сделать так:
^switch[$MAIN:mode]{
^case[register]{
<body>^user:register_form[]</body>
<title>Регистрация<title>
}
^case[register_do]{
<body>^user:register_do[]</body>
<title>Регистрация<title>
}
^case[DEFAULT]{
<body>Хелло! <a href="?mode=register">Зарегистрируйся!</a></body>
<title>bla-bla-bla<title>
}
}
а xml-ем потом найти <title/> и вывести куда следует.
на этом сайте работает связка xml+xslt.