我有一个链接列表,显示在我网站上的div中显示的XML文件:
File1.xml
File2.xml
File3.xml
等...
我有一个单独的div来以我喜欢的格式显示解析的XML。解析是用PHP完成的。我想通过单击指向单个文件的链接将文件内容加载到PHP文件中进行解析。有没有办法做到这一点?
答案 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>