Показать сообщение отдельно
Старый 18.05.2002, 15:42
Stellerex вне форума Посмотреть профиль Отправить личное сообщение для Stellerex Найти все сообщения от Stellerex
  № 7  
Stellerex

Регистрация: Aug 1999
Сообщений: 277
Отправить сообщение для Stellerex с помощью ICQ
На мой взгляд, ты излишне усложняешь жизнь - если не требуется жуткого интерактива на странице, без ее перезагрузки, выполнять трансформацию xml -> html через xslt лучше всего на сервере. Клиенту в этом случае приходит чистый html-код, скрывающий реализацию. Пример на c#:
Код:
protected String getXMLTransformResult() {
	XmlDocument doc = new XmlDocument();
	XmlDocument result = new XmlDocument();
	XmlNode node = result.AppendChild(result.CreateElement("root"));

	XmlDocument stylesheet = new XmlDocument();
	XslTransform transform = new XslTransform();

	XsltArgumentList arguments = new XsltArgumentList();
	fillXsltArgumentList(ref arguments);

	doc.Load(Server.MapPath(@"data/properties.xml"));
	stylesheet.Load(Server.MapPath(@"data/properties.xsl"));
	transform.Load(stylesheet);

	XmlReader reader = transform.Transform(doc, arguments);
	for (reader.Read(); !reader.EOF; )
		node.AppendChild(result.ImportNode(doc.ReadNode(reader), true));
	reader.Close();

	return node.InnerXml;
}
Аналогично делается на java, php етс.
Естественно, xml не обязательно грузить с диска
Если же ты маньяк и все трансформации позарез надо делать на клиенте, вот пример из MSDN:

Код:
<SCRIPT LANGUAGE="JScript">

  var oMenuXml = new ActiveXObject("Microsoft.XMLDOM");
  oMenuXml.async = false;
  oMenuXml.load("webdev.xml");

  var oMenuXsl = new ActiveXObject("Microsoft.XMLDOM");
  oMenuXsl.async = false;
  oMenuXsl.load("menus_1.xsl");

</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JScript">

  document.write(oMenuXml.transformNode(oMenuXsl.documentElement));

</SCRIPT>
__________________
Bright and clear.