2017-03-15 5 views
1

ここでは何もプログラミング経験のない写真家です。私は私のウェブサイトで働いていて、十分に(はい、私は多くの検索をしました)、答えを見つけることができませんでした。誰も私を正しい方向に向けることができますか?xmlの文字列をPHPのページ

私のギャラリー用のコードを生成したいと思います。私はいくつかの異なるギャラリー/ページを持っています。そして、すべてのsrc、altを1つのxmlファイルに保存してから、特定のページに移動したいと思います。

これまでのところ、私はこの

<?xml version="1.0"?> 
<catalog> 
    <img id="pf01"> 
     <src>foodphotography/01</src> 
     <alt>food1</alt> 
    </img> 
    <img id="pf02"> 
     <src>foodphotography/01</src> 
     <alt>food2</alt> 
    </img> 
    <pf id="pf03"> 
     <src>foodphotography/05</src> 
     <alt>food2</alt> 
    </pf> 
</catalog> 

とPHPコード

<?php 
    // Loading the XML file 
    $xml = simplexml_load_file("img.xml"); 
    foreach($xml->children() as $img) 
    { 
     echo "<div class='swiper-slide'>\n"; 
     echo "<img src='/images/".$img->src."'  alt='".$img->alt."'>\n"; 
     echo "</div>\n"; 
    } 
?> 

を持っている私は、1ページのみ<img>およびその他の<pf>上に表示しようとしています。今は3つの画像すべてを表示します。特定の画像のみをXMLファイルから選択するにはどうすればよいですか?私は複数のカタログを持つことはできないようです。

もっと良い方法がありますか?

がありますが、これにフィルタリングすることができな方法の多くは、ですが、あなたは別のページでそれらを持つことに興味を持っていることから、その後、あなただけの子供をフィルタリングするためにxpathを使用する場合があります

+1

XSLTを使うのか?あなたがGoogleの場合はいくつかの良いリソース –

+1

ファイルを選ぶ方法を明確にすることはできますか?今はすべてのimg要素を反復処理し、それらをエコーし​​ます。したがって、それらはすべて表示されます。 [xpathメソッド(http://php.net/manual/en/simplexmlelement.xpath.php)で特定の要素を選択するか、SimpleXml要素を比較して選択できます。しかし、あなたはどのようにページを特定するのか分かりません。 – Gordon

+0

私は "img"、または "pf"だけを表示したいと思います。今はカタログの3つすべてを表示しますが、理想的には、1ページに2、もう1ページにimg、pfで1を表示します。 –

答えて

0

ありがとうございます。だからimgは、XPath

<?php 
// Loading the XML file 
$xml = simplexml_load_file("img.xml"); 

// swap children for xpath 
foreach($xml->xpath('/catalog/img') as $img) 
{ 
    echo "<div class='swiper-slide'>\n"; 
    echo "<img src='/images/".$img->src."'  alt='".$img->alt."'>\n"; 
    echo "</div>\n"; 
} 

/document/imgそして、あなたの他のページでを使用表示するには、XPathのおそらく/catalog/pf