从链接将XML文件加载到PHP中

时间:2011-03-27 15:48:33

标签: php xml hyperlink

我有一个链接列表,显示在我网站上的div中显示的XML文件:

File1.xml
File2.xml
File3.xml
等...

我有一个单独的div来以我喜欢的格式显示解析的XML。解析是用PHP完成的。我想通过单击指向单个文件的链接将文件内容加载到PHP文件中进行解析。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:1)

您可以使用$ _GET单独加载每个文件。

mysite.com/index.php?file=file1.xml

然后使用某种解析器,你解析的文件将是get变量中的文件。

答案 1 :(得分:1)

要记住的是PHP在服务器上运行,而HTML和显示在客户端(浏览器)上运行,因此任何时候你想要来回传递信息(在这种情况下,文件名为解析,解析和格式化文档)您需要转到单独的页面,或使用AJAX异步执行请求。

我会让你自己解析并格式化你认为合适的XML,但这应该让你开始:

<?php
$file = $_GET['file'];
if (!empty($file)) {
    $xml = load_xml($file);
    $parsed = parse_xml($xml);
    $formatted = format_xml($parsed);
} else {
    $formatted = "";
}
?>
<html>
    <head><title>Sample XML Picker</title></head>
    <body>
    <ul class="list_of_documents">
        <li><a href="<?php echo $_SERVER['PHP_SELF']?>?file=File1.xml">File1.xml</a></li>
        ...
    </ul>
    <div class="results">
        <?php echo $formatted ?>
    </div>
</html>

此链接指向自身,但带有一个查询字符串,指示要加载的文件。在一开始,我们检查是否设置了该文件变量,如果是,则继续并加载,解析和格式化xml。请注意,这些函数只是存根,您可以使用您选择的任何方法填写。

答案 2 :(得分:1)

感谢那些花时间回答的人。这是我最终用于创建链接并在iframe中显示解析的XML的方法:

<?php
$dirname = "Directory";
$dir = opendir($dirname);
while (false != ($file = readdir($dir))) {
    if (($file != ".") and ($file != "..")) {
        $filename = current(explode(".", $file));
        echo("<a href='Iframe.php?file=$dirname/$file' target='iframe'>$filename</a> <br />");
    }
}
?>
</div>

<div>
<iframe name="iframe" width="400" height="640" style="background: white;"
frameborder="1">

iframe中加载的PHP文件(Iframe.PHP)               

<?php

$story = $_GET[file];
$xml = simplexml_load_file($story);
echo $xml->getName() . "<br />";

foreach($xml->children() as $child) {
    echo $child->getName() . ": " . $child . "<br />";
}
?> 

</body>
</html>
</iframe>
<div>