0

width=400 の画像の SourceUrl にアクセスする方法について質問があります

images/di/47/6b/77/454430384d6d324b413332544a695675313851-400x400-0-0.jpg?p=p2.7f19fe93a466ae45afab&a=1&c=1&l=7000610&r=1&pr=1&lks=43958&f=ks3

デフォルトでは、幅= 100の画像が表示されていますが、どういうわけか私のxpath構文は400を取得していません

  <?php
$string = <<<XML
<imageList>
<image available="true" height="100" width="100">
        <sourceURL>images/di/47/6b/77/454430384d6d324b413332544a695675313851-100x100-0-0.jpg?p=p2.7f19fe93a466ae45afab&a=1&c=1&l=7000610&r=1&pr=1&lks=43998&fks=35198</sourceURL>
</image>
<image available="true" height="200" width="200"><sourceURL>images/di/47/6b/77/454430384d6d324b413332544a695675313851-200x200-0-0.jpg?p=p2.7f19fe93a466ae45afab&a=1&c=1&l=7000610&r=1&pr=1&lks=43998&fks=35198</sourceURL></image>
<image available="true" height="300" width="300"><sourceURL>images/di/47/6b/77/454430384d6d324b413332544a695675313851-300x300-0-0.jpg?p=p2.7f19fe93a466ae45afab&a=1&c=1&l=7000610&r=1&pr=1&lks=43998&fks=35198</sourceURL></image>
<image available="true" height="400" width="400"><sourceURL>images/di/47/6b/77/454430384d6d324b413332544a695675313851-400x400-0-0.jpg?p=p2.7f19fe93a466ae45afab&a=1&c=1&l=7000610&r=1&pr=1&lks=43998&fks=35198</sourceURL></image>
<image available="true" height="569" width="500"><sourceURL>images/di/47/6b/77/454430384d6d324b413332544a695675313851-500x569-0-0.jpg?p=p2.7f19fe93a466ae45afab&a=1&c=1&l=7000610&r=1&pr=1&lks=43998&fks=35198</sourceURL></image></imageList>
XML;


$xml = simplexml_load_string($string); 

$result = $xml->xpath("//image[@height='400']/sourceURL");



?> 
4

1 に答える 1

0

xpath は問題ありませんが、XML が無効です。http: //www.xmlvalidation.comを参照してください
&リンク内は文字エンティティの開始として解析されます --> エラー。

解決策<sourceURL>: 内のテキストを次の解析から除外します<![CDATA[...]]>:

$x = <<<XML
<imageList>
<image available="true" height="100" width="100">
    <sourceURL>
        <![CDATA[images/di/47/6b/77/454430384d6d324b413332544a695675313851-100x100-0-0.jpg?p=p2.7f19fe93a466ae45afab&a=1&c=1&l=7000610&r=1&pr=1&lks=43998&fks=35198]]>
    </sourceURL>
</image>
...
</imageList>
XML;

$xml = simplexml_load_string($x);
$result = $xml->xpath("//image[@height='400']/sourceURL")[0];
echo $result;

出力:

images/di/47/6b/77/454430384d6d324b413332544a695675313851-400x400-0-0.jpg?p=p2.7f19fe93a466ae45afab&a=1&c=1&l=7000610&r=1&pr=1&lks=43998&fks=35198

動作を確認してください: http://codepad.viper-7.com/31PLr3

CDATA の詳細: XML の <![CDATA[]]> とはどういう意味ですか?

于 2013-09-10T21:52:48.220 に答える