2017-05-05 29 views
0

希望我正確地問這個問題,因爲我猜這將需要PHP實現。根據URL參數返回一個特定的XML節點

我想要做的是通過URL返回XML數據的特定節點和所有子節點。

例如:mydomain.com/myphpfile.php?book_id=1 &標題= 「我的書名」

所以通過顯示的URL上方將返回以下XML數據僅

<Books> 
    <book id="1"> 
     <title>My Book Title</title> 
     <author>John Doe</author> 
     <genre>Horror</genre> 
     <description>Some long text description</description> 
    </book> 
    </Books> 

這僅僅是XML的一個例子:

<Books> 
    <book id="1"> 
     <title>My Book Title</title> 
     <author>John Doe</author> 
     <genre>Horror</genre> 
     <description>Some long text description</description> 
    </book> 

     <book id="2"> 
     <title>My Book Title</title> 
     <author>John Doe</author> 
     <genre>Comedy</genre> 
     <description>Some long text description</description> 
    </book> 

     etc 
</Books> 
+0

使用XPath'//書[ID = $ book_id和標題= $標題]' – splash58

+0

謝謝splash58我會放棄這一點 - 我在其他帖子中看到過這些回覆,但我不確定 - 不是我的專業領域。我猜你在你的xsl文件中添加了那個? – NickP

+0

它可以通過php中的simplexml完成​​。 – splash58

回答

1
$book_id = 1; 
$title = 'My Book Title'; 

$xml = simplexml_load_string($str); 
// find not suitable items - having incorrect id or title 
$dels = $xml->xpath('//book[@id != '. $book_id .' or title != "'. $title .'"]'); 
    // delete found books from xml 
    foreach($dels as $node) { 
    unset($node->{0}); 
    } 

echo $xml->saveXML(); 
+0

謝謝!等不及要試一試,再加上它給我開始的地方。非常感謝 – NickP

+0

很高興幫助。祝你好運!看演示 - https://eval.in/787663 – splash58

+0

只需很快你如何引用XML文件?即代碼中的books.xml路徑? – NickP