2013-12-20 90 views
1

我不知道如何在PHP中创建搜索引擎,其中$_GET['ID']等于XML标签属性ID <guest id="xx">,并且仅从具有特殊ID的标签提取数据。用PHP搜索属性GET

你不知道如何解决这个问题?

<?xml version="1.0" encoding="utf-8"?> 
<quests> 
    <quest id="1"> 
     <ID>1</ID> 
     <QUEST>Katakomby pod městem</QUEST> 
     <INFO>Asi nevíte že pod naším krásným městem je spousta tajných chodem, které pořádně nikdo neproskoumal. Jsou tu již dlouhá staletí a údajně naši předci v nich ukryli zlatý poklad.</INFO> 
     <TIME>780</TIME><!-- 780 - 13 minut --> 
     <ITEMS1></ITEMS1> 
     <XPMIN>180</XPMIN> 
     <MONEY>800</MONEY> 
     <LVL>1</LVL> 
    </quest> 

    <quest id="2"> 
     <ID>2</ID> 
     <QUEST>Oprava zříceného mostu</QUEST> 
     <INFO>Před několika dny strhla záplava starý dřevěný most u radnice. Pomoz jej opravit.</INFO> 
     <TIME>7200</TIME> 
     <ITEMS1></ITEMS1> 
     <XPMIN>250</XPMIN> 
     <MONEY>250</MONEY> 
     <LVL>4</LVL> 
    </quest> 
.....And more<quest id="xx"></quest>... 
</quests> 

我没有PHP代码,它不会永远不会工作。

回答

0

这是非常好的SimpleXml,这是一个原生的php库,用于将XML文件转换为可管理的对象。

例如:

<?php 
    $xmlStringFile = "<?xml version='1.0' standalone='yes'?><quests>....</quests>"; 
    $quests = new SimpleXMLElement($xmlStringFile); 

    if ($_GET['ID'] == $quests->quest[0]->ID) { 
     echo $quests->quest[0]->INFO 
    } 

?> 
+0

是的,它的作品!但是“..-> id”不是。用“ - > ID”是的,当然我需要“id”这个ID <$ name> ='_GET ['ID'] { echo“ ...”; } – The1JJF1

+0

好吧,它或多或少像编号,只是要aceder属性信息 –

0

使用DOMXPATH

$xml = 'your xml here'; 
$dom = new DOMDocument($xml); 
$xp = new DOMXPath($dom); 

$nodes = $xp->query("//quest[@id='{$_GET['id']}']"); 
$node = $nodes->item(0);