我正在开发一个使用XML API获取数据的Travel网站。
但是我相对较新的XML并输出它。我一直在尝试使用PHP输出测试XML文件,但目前最远的是只输出一些记录。
正如问题所述,我需要知道哪种技术最适合这个项目。以下iv包含了一些需要考虑的要点。
以下是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>
如果可能的话,建议哪个技术最适合这个项目,如果你能提供一些入门指南或任何信息将非常感谢。
感谢您抽出宝贵时间阅读本文。
答案 0 :(得分:0)
我建议使用PHP的SimpleXML扩展。使用SimpleXML,可以轻松解析XML数据源并从中创建格式化输出。
http://php.net/manual/en/intro.simplexml.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使用的很好例子。