3. Описание файла преобразования формата XSL (persons.xsl)
В подпрограмме XSL используется для форматирования данных XML и возврата их клиенту в HTML. Этот процесс также может быть проведен на стороне клиента, но, учитывая проблему совместимости, подпрограмма принимает метод форматирования через ASP на стороне сервера.
Содержимое файла XSL следующее:
<? XML версия = "1.0" Encoding = "GB2312"? > < xsl: styleSheet xmlns: xsl = "http://www.w3.org/1999/xsl/transform" version = "1.0"> < XSL: шаблон match = "/persons"> < Язык сценария = "javascript"> Функция add () { window.open ("add.asp", "add", "width = 300, height = 320, resize = no"); } Функция редактировать (Intid) { window.open ("edit.asp? id ="+intid, "edit", "width = 300, height = 320, resize = no"); } </Сценарий > < таблица Align = "Center" > < tr > < td align = "right"> < a href = "javascript: add ();"> Добавить новый контакт </a> </td> </tr > </Таблица > < Таблица Align = "center" cellpacing = "1" cellpadding = "2" bgcolor = "#6666600"> < tr bgcolor = "#e5e5e5" > < TD >< XSL: текст Disable-opput-Escaping = "yes" > & </xsl: текст > nbsp; </td > < TD > Имя </TD > < TD > Английское имя </td > < TD > Мобильный телефон </TD > < TD > Тел </TD > < TD > Электронная почта </td > < TD > QQ </TD > < TD > Компания, где вы находитесь </td > </tr > < xsl: за то, что выберите = "Человек" > < tr bgcolor = "#ffffff" > < td align = "right"> < xsl: значение select = "position ()"/> </td> < td style = "color:#990000"> <a> < xsl: attribute name = "href"> javaScript: edit ('< xsl: value-of Select = "position ()"/>'); </xsl : attribute> < xsl: атрибут name = "title"> Информация об изменении </xsl: attribute> < xsl: value-of select = "name"/> </a> </td > < TD >< XSL: значение select = "nick"/></td > < TD >< XSL: значение SELECT = "Mobile"/></TD > < td >< xsl: значение select = "tel"/></td > < td ><a>< xsl: атрибут name = "href" > mailto: < xsl: value-of select = "email"/></xsl: attribute> < xsl: value-of select = "email"/> </a></td > < TD >< XSL: значение SELECT = "QQ"/></TD > < TD >< XSL: значение SELECT = "Компания"/></TD > </tr > </xsl: за все > </Таблица > </XSL: шаблон > </xsl: stylesheet > |
Преобразование на стороне сервера завершено с использованием функции.
'************************************************ 'Описание: Форматируйте файл XML с помощью файла XSL. Автор: GWD 2002-11-05 'Параметры: strxmlfile - xml -файл, path + имя файла 'strxslfile - xsl file, path + имя файла 'Return: успех - форматированная html строка 'Не удалось - пользовательское сообщение об ошибке '************************************************ Функция formatxml (strxmlfile, strxslfile) Dim objxml, objxsl strxmlfile = server.mappath (strxmlfile) strxslfile = server.mappath (strxslfile) Установить objxml = server.createObject ("msxml2.domdocument") Установить objxsl = server.createObject ("msxml2.domdocument") objxml.async = false Если objxml.load (strxmlfile), то objxsl.async = false objxsl.validateonparse = false Если objxsl.load (strxslfile), то При ошибке резюме следующие ошибки улова в методе TransformNode Formatxml = objxml.transformnode (objxsl) Если objxsl.parseerror.errorcode <> 0 тогда Response.write "<br> < hr>" Response.write "Код ошибки:" & objxsl.parseerror.errorcode Response.write "<br> Причина ошибки:" & objxsl.parseerror.reess Response.write "<br> строка ошибок:" & objxsl.parseerror.line Formatxml = "< spanalert" "> format xml -ошибка! </span>" Конец, если Еще Response.write "<br> < hr>" Response.write "Код ошибки:" & objxsl.parseerror.errorcode Response.write "<br> Причина ошибки:" & objxsl.parseerror.reess Response.write "<br> строка ошибок:" & objxsl.parseerror.line Formatxml = "< spanalert" "> ошибка загрузки файла XSL! </span>" Конец, если Еще Response.write "<br> < hr>" Response.write "Код ошибки:" & objxml.parseerror.errorcode Response.write "<br> Ошибка Причина:" & objxml.parseerror.reeson Response.write "<br> Строка ошибок:" & objxml.parseerror.line Formatxml = "< spanalert" "> ошибка загрузка XML -файла! </span>" Конец, если Установить objxsl = ничего Установить objxml = ничего Конечная функция |