-2

preg_match に一致する xml 要素を見つけるための次のコードがあります。

foreach($xml->Items->Item->AlternateVersions->AlternateVersion->Binding as $BookBinding) { //loop through the xml data to find the correct ASIN for the kindle edition
    foreach ($xml->Items->Item->AlternateVersions->AlternateVersion->ASIN as $Kindlestring)
    {
        var_dump ($BookBinding);
        if (preg_match('/Kindle Edition/i',$BookBinding))
        {
            //do stuff
        }
    }
}

しかし、Binding の最初のループを var_dumping しているだけですが、どうしてでしょうか?

4

1 に答える 1

0

XML の構造がわからないので、ここでは推測しているだけですが、XML の間違った部分をループしていると思います。これはあなたが何をすべきかについての私の推測です:

foreach($xml->Items as $item) {
    $bookBinding  = $item->Item->AlternateVersions->AlternateVersion->Binding;
    $kindleString = $item->Item->AlternateVersions->AlternateVersion->ASIN;

    if (preg_match('/Kindle Edition/i',$BookBinding)) {
        //do stuff
    }
}

また、複数の AlternateVersions があるように見えるため、次のようにネストされたループを実行する必要がある場合があります。

foreach ($xml->Items as $item) {
    foreach ($item->Item->AlternateVersions as $version) {
        $bookBinding  = $version->AlternateVersion->Binding;
        $kindleString = $version->AlternateVersion->ASIN;

        if (preg_match('/Kindle Edition/i',$BookBinding)) {
            //do stuff
        }
    }
}
于 2013-06-07T14:53:33.463 に答える