Ana şablon dosyası olarak XSLT kullanırken PHP ile XML dosyasını ayrıştırma

3 Cevap php

Ben eski bir windows sunucu üzerinde çalışan, eski bir ASP ve VBScript bir sürü (500ish) xml dosyaları var. Kullanıcı istenen xml dosyasını indirmek için bağlantıyı tıklatın veya onun kendi sistemine ithal kez xml dosyası, nasıl görüneceğini görmek için bir bağlantıyı tıklayın olabilir ...

Çıkışını görüntülemek için tıklandığında ise, bu bir açılır pencere xml dosya vardı açıldı URL & vasıtasıyla geçirilir xslt şablon dosyasını kullanarak bu görüntü çıkışı olacaktır.

örnek url = / transform.php? action = dönüşümü & xmlProtocol = AC_Audiology.xml

Now were using PHP5 im trying to get something that resembles the same output. we started looking into xslt_create(); but this is an old function from php4

Ben bu dağıtmak için en iyi yöntem arıyorum.

The main php page should check & capture the $_GET['xmlProtocol'] value. pass this to the xslt template page as data; were it will be output in html.

doğru yönde genel bir nokta harika olurdu!

3 Cevap

Sen http://docs.php.net/xsl de "yeni" XSL (T) uzantısı belgeleri (+ örnekler) bulabilirsiniz.

php

/ / Transform.php

if(isset($_GET['action']) && $_GET['action'] == 'transform') {

	// obviously you would never trust the input and would validate first
	$xml_file = AFunctionValidateAndGetPathToFile($_GET['xmlProtocol']);

	// Load up the XML File
	$xmlDoc = new DOMDocument;
	$xmlDoc->load($xml_file);

	// Load up the XSL file
	$xslDoc = new DomDocument;
	$xslDoc->load("xsl_template_file.xsl");
	$xsl = new XSLTProcessor;
	$xsl->importStyleSheet($xslDoc);

	// apply the transformation
	echo $xsl->transformToXml($xmlDoc);
}

Ben yaklaşık iki yıl önce benzer bir sorun vardı. Ben PHP5 kullanarak ama xslt_create () kullanmak için gerekli olan; ya da bir eşdeğeri. Sonuçta, ben PHP4 geçti.

Muhtemelen belirli bir klasördeki dosyaları hariç her yerde PHP5 kullanmak için sunucu ayarlayabilirsiniz. Ben ki ben PHP4 kullanarak XSL dosyaları işlemek böylece ne yaptığını inanıyorum ama sitenin çoğunluğu hala PHP5 kullanılır.

Bu işler son iki yılda değişti ve PHP5 xslt_create gibi bir şey () için daha iyi destek olduğunu mümkündür; ---- Ben son değişiklikleri takip edilmemiştir.

Bu yardımcı olur umarım!