Как использовать один файл data.xml для хранения данных и несколько таблиц стилей xsl для просмотра данных на сайте? - PullRequest
0 голосов
/ 22 мая 2011

Я только изучаю XML и немного растерялся. До меня дошло, что для написания веб-сайта с использованием xml мне нужно создать несколько парных файлов xml и xsl, чтобы я мог ссылаться на другую страницу ... сделать что-нибудь с тех пор? Как использовать один XML-файл для хранения данных, которые я получаю, в нескольких таблицах стилей xsl? Является ли парный метод единственным способом?

Последние новости это только в ... Я понял, что для того, чтобы иметь несколько таблиц стилей с одним файлом XML, вам нужно использовать некоторый JavaScript !!! пойди разберись. ниже приведен код, вы можете вызвать этот код с помощью HTML-файла, который вы бы указали в своем меню. Убедитесь, что вы удалили связывающую декларацию таблицы стилей xsl вверху связанного xml-файла !!! И убедитесь, что вы используете сервер, чтобы отправлялись соответствующие HTTP-запросы. не будет работать локально при предварительном просмотре файла на жестком диске.

<html>
<head>
<script>
function loadXMLDoc(dname)
{
if (window.XMLHttpRequest)
  {
  xhttp=new XMLHttpRequest();
  }
else
  {
  xhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xhttp.open("GET",dname,false);
xhttp.send("");
return xhttp.responseXML;
}

function displayResult()
{
xml=loadXMLDoc("cdcatalog.xml");
xsl=loadXMLDoc("cdcatalog.xsl");
// code for IE
if (window.ActiveXObject)
  {
  ex=xml.transformNode(xsl);
  document.getElementById("example").innerHTML=ex;
  }
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
  {
  xsltProcessor=new XSLTProcessor();
  xsltProcessor.importStylesheet(xsl);
  resultDocument = xsltProcessor.transformToFragment(xml,document);
  document.getElementById("example").appendChild(resultDocument);
  }
}
</script>
</head>
<body onload="displayResult()">
<div id="example" />
</body>
</html>

После некоторого тестирования я узнал, что для правильной визуализации страницы вам нужно будет добавить информацию о скрипте в заголовок html-файла. Таблица стилей выглядит хорошо, но сценарии должны быть запущены до ввода данных, и я думаю, что они оба работают в одно и то же время и поэтому отменяют друг друга. ? есть мысли?

1 Ответ

1 голос
/ 24 мая 2011

На самом деле есть только три способа сделать это.

  1. Как вы узнали, используйте javascript на клиенте для преобразования xml, полученного от сервера; скачать XML. скачать XSL. выполнить JavaScript для преобразования XML с использованием xsl.
  2. Выполните преобразование на сервере - создайте обработчик, который выполняет вышеуказанный шаг, но на сервере.
  3. Измените ссылку на таблицу стилей в документе xml на сервере на лету и передайте ее клиенту.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...