2017-05-05 52 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