2017-10-04 63 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