我是 PHP 和 stackoverflow 的新手。我创建了一个脚本,它从表单中获取内容并搜索与给定类别和主题相对应的文件列表。现在,启动脚本时 xPath 部分会引发错误。它说:
致命错误:在第 10 行对非对象调用成员函数 getElementsByTagName()。
这是代码:
if (isset($_GET["subject"])){
$subject = $_GET["subject"];
$category = $_GET["category"];
$doc = new DOMDocument();
$doc->load('Files.xml');
$xpath = new DOMXPath($doc);
//subject
$subjectpath = 'subject[@name="' . $subject . '"]';
$ssubjectfiles = $xpath->query($subjectpath)->item(0);
$subjectfiles = $ssubjectfiles->getElementsByTagName('file');
//category
$categorypath = 'subject[@name="' . $subject . '"]/category[@name="' . $category . '"]';
$scategoryfiles = $xpath->query($categoryfiles)->item(0);
$categoryfiles = $scategoryfiles->getElementsByTagName('file');
function getFiles($files){
foreach($files as $file){
$filevalue = $file->nodeValue;
echo '<li>' . $filevalue . '</li>';
}
}
switch($category){
case 'Select a category or leave to get all the results':
getFiles($subjectfiles);
break;
default:
getFiles($categoryfiles);
}
}
为什么它不起作用?我必须以某种方式转换对象吗?
谢谢!
编辑
看起来问题出在相对链接上。我把它改成它http://localhost/Files.xml
似乎工作。总之谢谢大家。