XMLファイルからの読み取りを含むPHPページに取り組んでいます。しかし、次のエラー メッセージが表示されます: 解析エラー: 解析エラー、24 行目の予期しない T_OBJECT_OPERATOR。だから、誰かが私が間違っていることを理解できるかどうか疑問に思っています。
<?php
if (!isset($_GET["searchstr"]))
print "no Search String is provided! <br />";
else if (!isset($_GET["searchtype"]) || empty($_GET["searchtype"]))
print "No Search type is selected!<br />";
else
{
$searchstr = $_GET["searchstr"];
$searchtype = $_GET["searchtype"];
$xmlDoc = new DOMDocument();
@ $success = $xmlDoc->load("books.xml");
if (!$success)
print "No XML book data on the server!";
else
{
$books = $xmlDoc->getElementsByTagName("book");
$num = 0;
foreach ($books as $book)
$title = $book->getElementsByTagName("title")->item(0)->firstChild->nodevalue;
$isbn13 = $book->getElementsByTagName("ISBN13")->item(0)->firstchild->nodevalue;
$isbn10t = $book->getElementsByTagName("ISBN10");
$isbn10 = "";
if ($isbn10t->length > 0)
$isbn10 = $isbn10t->item(0)->firstchild->nodevalue;
$authors = $book->getElementsByTagName("author");
$author = "";
for ($j=0; $j<$authors->length; $j++)
{
if ($j>0)
{
if ($j < $authors->length-1) $author .= ". ";
else $author .= " and ";
}
$author .= $author->item($j)->getElementsByTagName("firstname")->item(0)->firstchild->nodevalue;
$author .= " " . $authors->item($j)->getElementsByTagName("lastname")-item(0)->firstchild->nodevalue;
}
$desc = $book->getElementsByTagName("descritpion");
$description = "";
if ($desc->length > 0)
$descreption = $desc->item(0)->firstchild->nodevalue;
if (empty($searchstr)
|| searchtype == "title" && eregi($searchstr,$title)
|| $searchtype == "isbn" && (eregi($searchstr, $author)
|| $searchtype == "keyword" && (eregi($searchstr, $title) || eregi($searchstr, $description)
{
$num++
print "{$num}. Title: <a href=\"select.php?isbn={$isb13}\">{$title}</a><br />";
print "Author: {$author}<br />"
print "ISBN-13. ";
print $books->getElementsByTagName("ISBN13")->item(0)->firstchild->nodevalue."<br />";
$isbn10 = $book->getElementsByTagName("ISBN10");
if ($isbn10->length > 0)
{
print " ISBN-10: " . $isbn10->item(0)->firstchild-nodevalue. "<br />";
}
print "Price: $";
print $book->getElementsByTagName("price")->item(0)->firstchild->nodevalue. "<br />";
print "<br />"
}
if ($num == 0)
print "no book is found!";
}
}
}
?>
これは私が使用しているXMLコードの例です
<book id="1">
<title>Beginning ASP.NET 4 in C# 2010</title>
<authors>
<author>
<lastname>MacDonald</lastname>
<firstname>Matthew</firstname>
</author>
</authors>
<ISBNs>
<ISBN13>9781430226086</ISBN13>
<ISBN10>1430226080</ISBN10>
</ISBNs>
<publisher>Apress</publisher>
<publishdate>2010-05</publishdate>
<pages>981</pages>
<price>49.99</price>
<description>This book discusses ASP.NET programming in C# with Visual Studio 2010.</description>
</book>
これは、PHP ページの前のページである検索ページのコードです。
<!DOCTYPE html>
<html>
<head>
<title>Textbook Buyer</title>
<link href="styles.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
function doSearch()
{
var searchstr = document.getElementById("searchstr").value;
var searchtype = document.getElementById("searchtype").value;
$.ajax
({
type: "GET",
url: "searchlist.php?searchstr=" + searchstr + "&searchtype=" + searchtype,
success: function(sText, sStatus, oXHR)
{
$("div#results").html(sText);
},
error: function (oXHR, sStatus, sError)
{
$("div#results").html("An error occurred.");
}
});
}
</script>
</head>
<body>
<table>
<tr>
<td class="header" colspan="5">Textbook Buyer</td>
</tr>
<tr>
<td id="td1" colspan="5">
| <a href="welcome.php">Welcome</a>
| <a href="bestsellers.php">Bestsellers</a>
| <a href="hotdeals.php">Hot Deals</a>
| <a href="bookstores.php">Bookstores</a>
| <a href="myaccout.php">My Account</a>
| <a href="help.php">Help</a>
|</td>
</tr>
<tr>
<td class="column">
<strong>Browse Textbooks<br />
by Category:</strong><br />
<br />
Business -<br />
Computer Science -<br />
History -<br />
Mathematics -<br />
Medical -<br />
Social Science -<br />
</td>
<td class="td2"></td>
<td id="td3">
<div id="searchBox"> <br />
<input type="text" id="searchstr" size="30" />
<select id="searchtype">
<option value="title" selected="selected">Title</option>
<option value="author">Author</option>
<option value="isbn">ISBN</option>
<option value="keyword">Keyword</option>
</select>
<br />
<input type="button" id="searchButton" value="Search" onClick="doSearch();" /><br />
</div>
<div id="results"></div>
</td>
<td class="td2"></td>
<td class="column">
<strong>Customer Support:</strong><br />
<br />
Order Status<br />
Customer Service <br /><br />
<a href="search.php">Search Books</a>
</td>
</tr>
<tr>
<td id="td5" colspan="5">© Copyright 2013, Textbook Buyer, Inc. All rights reserved.
</td>
</tr>
</table>
</body>
</html>