特定のXML要素を返すために正規表現フィルタを使用しようとしています。xml要素と一致する要素を返す正規表現
XMLは次のようになりん:今私のような全体の要素をつかむしたいdefault="1"
:
<outfits>
<outfit name="babe0" color="0xF2C291" mood="1" species="babe">
<head url="http://assets.zwinky.com/assets/babe/heads/01/head1" c="0xF4C4A4" c2="0xffffff" z="33000"/>
<face url="http://assets.zwinky.com/assets/babe/faces/01/grl1" c="0x8442" c2="0xFE89B9" displayName="girl1" z="34000" id="20014794"/>
<midsection url="http://assets.zwinky.com/assets/babe/midsections/01/ms1" c="0xBCE4FE" z="9000"/>
<leg url="http://assets.zwinky.com/assets/babe/legs/01/legs1" z="10000"/>
<hair url="http://assets.zwinky.com/assets/babe/hair/01/hr3" c="0xA55200" displayName="straight n' long" z="37000" id="20014869"/>
</outfit>
<outfit thumbnailUrl="users/908/721/swagg_ma_blue/thumbnail-12631.jpg" default="1" name="babe1" color="0xF2C291" mood="1" species="babe">
<head url="http://assets.zwinky.com/assets/babe/heads/01/head1" c="0xF4C4A4" c2="0xffffff" z="33000"/>
<face url="http://assets.zwinky.com/assets/babe/faces/01/grl1" c="0x0000CC" c2="0xFE89B9" displayName="girl1" z="34000" id="20014794"/>
<midsection url="http://assets.zwinky.com/assets/babe/midsections/01/ms1" c="0xBCE4FE" z="9000"/>
<leg url="http://assets.zwinky.com/assets/babe/legs/01/legs1" z="10000"/>
<hair url="http://assets.zwinky.com/assets/babe/hair/01/hr3" c="0xCA9460" displayName="straight n' long" z="37000" id="20014869"/>
<shirt url="http://assets.zwinky.com/assets/babe/tops/01/top9" c="0xFFCC66" displayName="tube top2" z="21000" id="20014829"/>
<bottom url="http://assets.zwinky.com/assets/babe/bottoms/01/bm27" c="0x333333" displayName="pants w/chains" z="20000" id="20014937"/>
<shoes url="http://assets.zwinky.com/assets/babe/shoes/01/sh26" c="0x009933" displayName="elf boots" z="19000" id="20014976"/>
<hat url="http://assets.zwinky.com/assets/babe/hats/01/hat1" c="0xCC9966" c2="0x999999" displayName="pageboy cap" z="40000" id="20015058"/>
<bag url="http://assets.zwinky.com/assets/babe/bags/01/bag15" c="0xFF6600" c2="0x333333" displayName="trick or treat2" z="43000" id="20015070"/>
<belt url="http://assets.zwinky.com/assets/babe/belts/01/blt16" c="0x333333" displayName="chain belt3" z="26000" id="20015085"/>
</outfit>
</outfits>
あなたがそれらの2つのoutfit
と呼ばれるノードと1がある見ることができるように、以下のパラメータが含まれています。
<outfit thumbnailUrl="users/908/721/swagg_ma_blue/thumbnail-12631.jpg" default="1" name="babe1" color="0xF2C291" mood="1" species="babe">
<head url="http://assets.zwinky.com/assets/babe/heads/01/head1" c="0xF4C4A4" c2="0xffffff" z="33000"/>
<face url="http://assets.zwinky.com/assets/babe/faces/01/grl1" c="0x0000CC" c2="0xFE89B9" displayName="girl1" z="34000" id="20014794"/>
<midsection url="http://assets.zwinky.com/assets/babe/midsections/01/ms1" c="0xBCE4FE" z="9000"/>
<leg url="http://assets.zwinky.com/assets/babe/legs/01/legs1" z="10000"/>
<hair url="http://assets.zwinky.com/assets/babe/hair/01/hr3" c="0xCA9460" displayName="straight n' long" z="37000" id="20014869"/>
<shirt url="http://assets.zwinky.com/assets/babe/tops/01/top9" c="0xFFCC66" displayName="tube top2" z="21000" id="20014829"/>
<bottom url="http://assets.zwinky.com/assets/babe/bottoms/01/bm27" c="0x333333" displayName="pants w/chains" z="20000" id="20014937"/>
<shoes url="http://assets.zwinky.com/assets/babe/shoes/01/sh26" c="0x009933" displayName="elf boots" z="19000" id="20014976"/>
<hat url="http://assets.zwinky.com/assets/babe/hats/01/hat1" c="0xCC9966" c2="0x999999" displayName="pageboy cap" z="40000" id="20015058"/>
<bag url="http://assets.zwinky.com/assets/babe/bags/01/bag15" c="0xFF6600" c2="0x333333" displayName="trick or treat2" z="43000" id="20015070"/>
<belt url="http://assets.zwinky.com/assets/babe/belts/01/blt16" c="0x333333" displayName="chain belt3" z="26000" id="20015085"/>
</outfit>
です。悲しいことに私のregex
はうまく動作しません。 PHP function
の
/\<outfit.+?default="1".+?\>.+?\<\/outfit\>/i
パート:私が作ったregex
は、次のようになります
if (preg_match('/\<outfit.+?default="1".+?\>.+?\<\/outfit\>/i', $user_outfit, $match)) {
return $match['0'];
}
誰もが私の正規表現と間違って何考えを持っていますか?
's'修飾子を使用しない限り、' .'は改行にマッチしません。パーサを使うべきですが、これははるかに簡単できれいになります。 http://stackoverflow.com/questions/3577641/how-do-you-parse-and-process-html-xml-in-phpを参照してください。 (無関係ですが、 '<' and '>'は正規表現では特殊文字ではなく、エスケープする必要はありません) – chris85