2017-05-05 17 views
0

うまくいけば、私はこれを達成するためにはPHPが必要であると推測していると思う。URLパラメータに基づいて特定のXMLノードを返す

私がしたいことは、XMLデータの特定のノードとすべての子をURL経由で返すことです。

例: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

ありがとうございました58私はそれをやります - 私は他の投稿でこのような回答を見ましたが、わかりませんでした。私の専門分野ではありません。私はあなたの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

関連する問題