XML&XSLT - проблем

3 отговора 99 прегледа
#1

XML&XSLT - проблем

Здрасти! Имам малък проблем, който не знам как да разреша (или поне в дебелите книги не пише :). Ситуацията е такава:
Имам XML документ, и шаблон на XSLT. Двата файла са качени да кажем на сървъра на дир.бг Въпроса ми е: как да преобразувам съответния xml по начина зададен в *.XSL По точно как да стартирам парсера и да му задам като аргументи двата файла?

Отговор
в отговор на Anthares #2

Re: XML&XSLT - проблем

Начи зависи... не ми стана много ясно какво точно искаш да направиш и къде искаш да го направиш, затова пак ще пиша много:

Не знам дали дир.бг ти дават да ползваш ASP на сървъра- дълбоко се съмнявам, но ако не дай си боже ти дават- използваш следния код:
var xml = new ActiveXObject("MSXML2.DOMDocument.3.0");

var xsl = new ActiveXObject("MSXML2.DOMDocument.3.0");

xml.async = false;
xsl.async = false;

xml.load("data.xml");
xsl.load("sample.xsl");

var fso = new ActiveXObject("Scripting.FileSystemObject");
var MyFile = fso.CreateTextFile("output.html", true);

MyFile.Write(xml.transformNode(xsl));
MyFile.Close();
Като сините са имената на файла с данни и схемата. По този начин ще запишеш на сървъра резултата от парсера. Иначе можеш да го имаш кода като променлива... например $promenliva = xml.transformNode(xsl);... Всъщност най-важната част от кода е метода transformNode на XML обектите!

Този код е написан на JScript, не на VB и апропо, можеш почти целия да го извикаш като JScript директно в браузъра... приблизително така:
<SCRIPT LANGUAGE="JScript">

<!--
var xml = new ActiveXObject("MSXML2.DOMDocument.3.0");
var xsl = new ActiveXObject("MSXML2.DOMDocument.3.0");

xml.async = false;
xsl.async = false;

xml.load("data.xml");
xsl.load("sample.xsl");

document.write(xml.transformNode(xsl));
//-->
</SCRIPT>
Но това ще работи само в Microsoft Internet Explorer...

Апропо същото може да се направи и на PHP, но с него не съм се занимавал и не мога да ти кажа, но съм убеден, че в интернет е пълно с обяснения как се управляват XML обекти (класове) или каквото искаш!

И не на последно място повечето браузъри, но не всички, имат вградени XML парсери, както и разбират от XSLT схеми, така че можеш просто на първия ред в XML файла да напишеш: <?xml-stylesheet type="text/xsl" href="sample.xsl"?> като червеното е пътя до схемата... това ще го разбере както Explorer (мисля от 5 версия нагоре), така и Netscape и Opera и Mozilla... и повечето браузъри базирани върху изброените!

БАба...


Ама баба не е жена, вие не знаете ли?
Отговор
в отговор на Anthares #3

Re: XML&amp;XSLT - проблем

Ако както на дир.бг имаш поддръжка на PHP...

Една моя дрсканица може да ти помогне... [линк]

HowBizarre
Отговор
в отговор на Anthares #4

Re: XML&amp;XSLT - проблем

Благодаря ви и на двамата. Кодовете работят без грешка. Ако видя зор, пак ще се обаждам

Отговор