Вывод XML - PHP против JS против всего остального? - PullRequest
1 голос
/ 09 февраля 2011

Я работаю над созданием веб-сайта Travel, который использует XML API для получения данных.

Однако я относительно новичок в XML и его выводе. Я экспериментировал с использованием PHP для вывода тестового XML-файла, но в настоящее время самая далекая iv - это вывод только нескольких записей.

Как говорится в вопросах, мне нужно знать, какая технология будет наилучшей для этого проекта. Ниже iv включены некоторые моменты, которые необходимо учитывать.

  • Сайт будет большим по размеру, интенсивно посещаемым (астия / размер последней минуты)
  • Мой набор навыков - PHP (средний / высокий) и Javascript (средний / высокий)

Ниже приведен пример XML, который выводит API:

<?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 голосов
/ 09 февраля 2011

XSLT работает как шарм и поддерживается PHP. Для вывода вашего XML-файла требуется скрипт XSLT:

<?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-stylesheet type = "text / xsl" href = "test.xsl"?>
как вторая строка в вашем XML-файле и открывая XML-файл в Firefox или IE, в котором XSL-файл находится в той же папке.
Изменение 3-й строки PHP в этом
$ Процес-> transformToUri (DOMDocument :: нагрузки ( "test.xml"), "test.html");
сохранит вывод как статический файл.

Здесь предлагается несколько полезных советов:
https://stackoverflow.com/questions/339930/any-good-xslt-tutorial-book-blog-site-online

0 голосов
/ 10 февраля 2011

Мне действительно нравится решение XSLT, предложенное в последнем посте. Отличный пример использования XSLT.

0 голосов
/ 09 февраля 2011

Я бы предложил использовать расширение PHP SimpleXML. С SimpleXML легко проанализировать подачу данных XML и создать отформатированный вывод из этого.

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

И несколько простых для понимания примеров:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...