php - XML 输出 - PHP、JS 与其他什么?

标签 php javascript xml

我正在开发一个旅游网站,该网站使用 XML API 来获取数据。

但是我对 XML 和输出还比较陌生。我一直在尝试使用 PHP 输出测试 XML 文件,但目前最远的 iv 只能输出几条记录。

正如问题所述,我需要知道哪种技术最适合该项目。下面 iv 包括一些需要考虑的要点。

  • 该网站将是一个大型、高流量的网站(expedia/last 分钟大小)
  • 我的技能是 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>

如果可能的话,在建议哪种技术最适合该项目时,如果您可以提供一些入门指南或任何信息,我们将非常感激。

感谢您花时间阅读本文。

最佳答案

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 添加此内容

作为 XML 文件中的第二行,并在 Firefox 或 IE 中打开 XML 文件,并将 XSL 文件放在同一文件夹中。
更改此中的第三个 PHP 行
$proc->transformToUri(DOMDocument::load("test.xml"),"test.html");
将输出保存为静态文件。

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

关于php - XML 输出 - PHP、JS 与其他什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4946833/

相关文章:

c# - 使用 XDocument.Parse 将所有内容加载到一个元素中

c++ - 使用 Boost property_tree 更新 XML 文件

php - 从非日期时间格式的字段中获取记录

javascript - 绑定(bind)在动态加载的组件中不起作用

java - 是否可以避免使用 xalan TransformerFactory?

javascript - 如何在javascript中播放另一个声音后播放一个声音文件

javascript - 如何在javascript中的单个对象中推送相似的索引类型键

php - 需要在div出现在页面之前getElementById

php - 如何使用 Cake PHP 创建子域?

php - Mysql SELECT 不同