XML输出 - PHP vs JS vs还有什么?

时间:2011-02-09 15:21:30

标签: php javascript xml

我正在开发一个使用XML API获取数据的Travel网站。

但是我相对较新的XML并输出它。我一直在尝试使用PHP输出测试XML文件,但目前最远的是只输出一些记录。

正如问题所述,我需要知道哪种技术最适合这个项目。以下iv包含了一些需要考虑的要点。

  • 该网站将是一个大型,交通繁忙的网站(expedia / lastminute size)
  • 我的技能组合是PHP(中级/高级技能)& Javascript(中级/高级技能)

以下是API输出的XML示例:

<?xml version="1.0"?>
<response method="###" success="Y">
    <errors>
    </errors>
    <request>
        <auth password="test" username="test" />
        <method action="###" sitename="###" />
    </request>
    <results>
        <line id="6" logourl="###" name="Line 1" smalllogourl="###">
            <ships>
                <ship id="16" name="Ship 1" />
                <ship id="453" name="Ship 2" />
                <ship id="468" name="Ship 3" />
                <ship id="356" name="Ship 4" />
            </ships>
        </line>
        <line id="63" logourl="###" name="Line 2" smalllogourl="###">
            <ships>
                <ship id="492" name="Ship 1" />
                <ship id="454" name="Ship 2" />
                <ship id="455" name="Ship 3" />
                <ship id="421" name="Ship 4" />
                <ship id="401" name="Ship 5" />
                <ship id="404" name="Ship 6" />
                <ship id="405" name="Ship 7" />
                <ship id="406" name="Ship 8" />
                <ship id="407" name="Ship 9" />
                <ship id="408" name="Ship 10" />
            </ships>
        </line>
        <line id="41" logourl="###">
            <ships>
                <ship id="229" name="Ship 1" />
                <ship id="230" name="Ship 2" />
                <ship id="231" name="Ship 3" />
                <ship id="445" name="Ship 4" />
                <ship id="570" name="Ship 5" />
                <ship id="571" name="Ship 6" />
            </ships>
        </line>
    </results>
</response>

如果可能的话,建议哪个技术最适合这个项目,如果你能提供一些入门指南或任何信息将非常感谢。

感谢您抽出宝贵时间阅读本文。

3 个答案:

答案 0 :(得分:0)

我建议使用PHP的SimpleXML扩展。使用SimpleXML,可以轻松解析XML数据源并从中创建格式化输出。

http://php.net/manual/en/intro.simplexml.php

一些易于理解的例子:

http://php.net/manual/en/simplexml.examples-basic.php

答案 1 :(得分:0)

XSLT就像魅力一样,并且受PHP支持。它需要此XSLT脚本来输出您的XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
    <html>
        <head>
            <title>Test</title>
        </head>
        <body>
            <h1>User: <xsl:value-of select="//request/auth/@username"/></h1>
            <xsl:apply-templates select="//results/line"/>
        </body>
    </html>
</xsl:template>
<xsl:template match="line">
    <div>
        <h3>Line ID: <xsl:value-of select="@id"/></h3>
        <xsl:apply-templates select="./ships/ship"/>
    </div>
</xsl:template>
<xsl:template match="ship">
    <div>
        <xsl:value-of select="@id"/>
        <xsl:text> - </xsl:text>
        <xsl:value-of select="@name"/>
    </div>
</xsl:template>
</xsl:stylesheet>

要针对您的文件运行脚本,只需使用3行PHP代码:

<?php
$proc=new XsltProcessor;
$proc->importStylesheet(DOMDocument::load("test.xsl")); //load script
echo $proc->transformToXML(DOMDocument::load("test.xml")); //load your file
?>

您甚至可以在浏览器中尝试此转换,而无需添加任何PHP &lt;?xml-stylesheet type =“text / xsl”href =“test.xsl”?&gt;

作为XML文件中的第二行,在Firefox或IE中打开XML文件,将XSL文件放在同一文件夹中 在此更改第3个PHP行 $&PROC-GT; transformToUri(DOM文档::负载( “的test.xml”), “的test.html”);
将输出保存为静态文件。

这里建议一些好的建议:
https://stackoverflow.com/questions/339930/any-good-xslt-tutorial-book-blog-site-online

答案 2 :(得分:0)

我非常喜欢上一篇文章中提供的XSLT解决方案。 XSLT使用的很好例子。