2017-10-04 31 views
1

我想學習這個:使用XSLT和xml設置html樣式。 目前我使用的是php/mysql,這對於我正在使用的xml文件來說很麻煩。目前,我導入整個XML文件,處理它,然後將其轉儲到一個SQL表,然後在運行時處理表(排序等),這是一個很長的過程和非常「Kludgy!」。我最近發現,所有這些都可以通過將XSLT應用於XML來完成。這個問題,我明白(它)如何工作,但是,大約3天的麻木搜索後,我還沒有找到:XSLT如何知道如何讀取所需的xml文件?

xls知道如何使用我遠程下載的文件(或本地)。

幾個建議是將它添加到XML文件,但不知道如果這是正確的。 xml數據有5,000多個條目。 例如,在另一個堆在流的話題,我發現這一點:但它是什麼,我需要相反:

<?xml-stylesheet type="text/xsl" href="yourxsl.xsl"?> 

所以

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    version="1.0"> 
    <xsl:output method="xml" omit-xml-declaration="yes" indent="no"/> 

    <xsl:template match="wine"> 
很多我學習XSLT/XML的

隨機的網站,但此也沒有顯示數據來自何處。在上面的例子中,XSLT如何知道如何使用包含wine條目的文件?

例如,如果我有

$xml = simplexml_load_file($file);//$file = remote or local xml file 

如何XSLT知道這是我想要的數據。 W3的例子沒有幫助。它很好地解釋了xls和dhow的工作原理,但是示例xml文件似乎在同一個執行腳本中。我感覺到我無法看到樹木的森林。

幫助!完全混淆了:-)

回答

0

有不同的API用於調用XSLT轉換。您似乎在使用PHP,所以您的第一步可能是使用與PHP捆綁在一起的XSLTProcessor提供的API。這是在此描述:

http://php.net/manual/en/class.xsltprocessor.php

方法XSLTProcessor.transformToXML()與輸入文件提供給被轉化,使用()之前使用XSLTProcessor.importStylesheet編譯樣式表。

W3C沒有任何有關此信息的原因是API是特定於語言的 - 如果您是從Java或C#或Javascript調用轉換,那麼您將使用不同的API。順便提一下,您應該知道PHP的XSLTProcessor支持的XSLT版本很舊(XSLT 1.0,可追溯到1999年)。如果您想使用更現代的語言版本(XSLT 3.0已於今年早些時候發佈),請下載Saxon/C產品(從www.saxonica.com)。這有一個PHP接口,API與API類似,但與內置的XSLTP處理器不相同。

+0

謝謝,我會看看這個!我會稍微留意一下,看看我的方案是否還有其他選擇。乾杯!! – nixsteam

+0

雖然研究..我發現這是補充@邁克爾凱答案[XSLTProcessor示例](http://php.net/manual/en/xsl.examples.php)。只是一個FYI,處理器的時代將不會成爲一個問題,因爲該網站雖然擁有龐大的庫,但其交付過程極其簡單。 – nixsteam