php kullanarak xml yem bazı nesneleri atlamak

2 Cevap php

Ben aşağıda xml yemden değerleri almak ve işlevi php php XPath'i kullanıyorum.

<FOUND>
    <IMAGES>
    <IMAGE>
      <SMALL>images/small.jpg</SMALL> 
      <MED>images/med.jpg</MED> 
      <LARGE>images/large.jpg</LARGE> 
      <EXTRAL>images/extra.jpg</EXTRAL> 
    </IMAGE>
    <IMAGE>
      <SMALL>images1/small.jpg</SMALL> 
      <MED>images1/med.jpg </MED> 
      <LARGE>images1/large.jpg</LARGE> 
      <EXTRAL>images1/extra.jpg</EXTRAL> 
    </IMAGE>
    <IMAGE>
      <SMALL>images2/small.jpg</SMALL> 
      <MED>images2/med.jpg </MED> 
      <LARGE>images2/large.jpg</LARGE> 
      <EXTRAL>images2/extra.jpg</EXTRAL> 
    </IMAGES>
</FOUND>

function img ($id){

    $xml=simplexml_load_file("feed1.xml");
    //$xml=simplexml_load_string($string);
    if (!$xml) {
    trigger_error("There was an error",E_USER_ERROR);
    }

    $images=$xml->xpath('//IMAGE');
    return $images;

    }

Yukarıdaki besleme cz sadece kısmi bir kod oldukça büyük .. ben 2 blok atlama, görüntü nesnelerinin yalnızca birinci ve üçüncü blok kapmak ve kalan görüntü bloklarını görüntülemek için bir yolu var olduğunu bilmek istiyorum nedir?

öylesine i her 10 bloktan sonra bir mesaj görüntülemek istiyorum yukarıda yem, onun gibi 80 görüntü nesne blokları. oldukça benzer ayrı bir büyük xml besleme var. ben bunu nasıl?

Herhangi bir yardım çok takdir edilecektir

2 Cevap

Yapabileceğiniz ilk ve üçüncü blok almak için:

//IMAGE[position() == 1 || position() == 3]

Almak için, örneğin Yapabileceğiniz her 10 element:

//IMAGE[position() mod 10 == 0]

Bkz: XPath function reference.

Ben tam olarak display a message after each 10 block ile ne demek çok emin değilim ama bunu yapabilirsiniz:

$images = $xml->xpath('//IMAGE');

foreach($images as $key => $image) {
    // do whatever you want to do with the image 
    if($key % 10 == 9) {
        echo 'Some message';
    }  
}

XPath sözdizimi hakkında daha fazla bilgi için, ziyaret edebilirsiniz http://www.w3schools.com/xpath/xpath_syntax.asp.

XPath () bir dizi döndürür yana Ve ... belki bir foreach () döngü daha karmaşık opration yapabilirsiniz.