正则表达式 xml 取出多个详细的值
这是xml的部分值,请问要如何依次取出相应的值?
比如将1A0003、1B0001放在一个数组里,
B股指数、工业指数放在一个数组里,
BGZS、GYZS放在一个数组。
谢谢各位大牛,
preg_match_all使用三次么?
该怎么写这样的表达式?
------解决思路----------------------
使用正则捕获功能。
<br /><?php <br />$s = '<PY>1A0003<br><font color='#FF8000'>------解决思路----------------------</font><br>B股指数<br><font color='#FF8000'>------解决思路----------------------</font><br>BGZS<br><font color='#FF8000'>------解决思路----------------------</font><br>16</PY><br /><PY>1B0001<br><font color='#FF8000'>------解决思路----------------------</font><br>工业指数<br><font color='#FF8000'>------解决思路----------------------</font><br>GYZS<br><font color='#FF8000'>------解决思路----------------------</font><br>16</PY><br /><PY>1B0002<br><font color='#FF8000'>------解决思路----------------------</font><br>商业指数<br><font color='#FF8000'>------解决思路----------------------</font><br>SYZS<br><font color='#FF8000'>------解决思路----------------------</font><br>16</PY><br /><PY>1B0004<br><font color='#FF8000'>------解决思路----------------------</font><br>地产指数<br><font color='#FF8000'>------解决思路----------------------</font><br>DCZS<br><font color='#FF8000'>------解决思路----------------------</font><br>16</PY><br /><PY>1B0005<br><font color='#FF8000'>------解决思路----------------------</font><br>公用指数<br><font color='#FF8000'>------解决思路----------------------</font><br>GYZS<br><font color='#FF8000'>------解决思路----------------------</font><br>16</PY><br /><PY>1B0006<br><font color='#FF8000'>------解决思路----------------------</font><br>综合指数<br><font color='#FF8000'>------解决思路----------------------</font><br>ZHZS<br><font color='#FF8000'>------解决思路----------------------</font><br>16</PY>';<br /><br />preg_match_all('/<PY>([^<br><font color='#FF8000'>------解决思路----------------------</font><br>]*)\<br><font color='#FF8000'>------解决思路----------------------</font><br>([^<br><font color='#FF8000'>------解决思路----------------------</font><br>]*)\<br><font color='#FF8000'>------解决思路----------------------</font><br>([^<br><font color='#FF8000'>------解决思路----------------------</font><br>]*)\<br><font color='#FF8000'>------解决思路----------------------</font><br>([^<]*)<\/PY>/', $s, $matches);<br />print_r($matches[1]);<br />print_r($matches[2]);<br />print_r($matches[3]);<br />print_r($matches[4]);<br /><br />
结果:
Array
(
[0] => 1A0003
[1] => 1B0001
[2] => 1B0002
[3] => 1B0004
[4] => 1B0005
[5] => 1B0006
)
Array
(
[0] => B股指数
[1] => 工业指数
[2] => 商业指数
[3] => 地产指数
[4] => 公用指数
[5] => 综合指数
)
Array
(
[0] => BGZS
[1] => GYZS
[2] => SYZS
[3] => DCZS
[4] => GYZS
[5] => ZHZS
)
Array
(
[0] => 16
[1] => 16
[2] => 16
[3] => 16
[4] => 16
[5] => 16
)
------解决思路----------------------
<br />$str = <<<EOF<br /><root><br /><PY>1A0003<br><font color='#FF8000'>------解决思路----------------------</font><br>B股指数<br><font color='#FF8000'>------解决思路----------------------</font><br>BGZS<br><font color='#FF8000'>------解决思路----------------------</font><br>16</PY><br /><PY>1B0001<br><font color='#FF8000'>------解决思路----------------------</font><br>工业指数<br><font color='#FF8000'>------解决思路----------------------</font><br>GYZS<br><font color='#FF8000'>------解决思路----------------------</font><br>16</PY><br /><PY>1B0002<br><font color='#FF8000'>------解决思路----------------------</font><br>商业指数<br><font color='#FF8000'>------解决思路----------------------</font><br>SYZS<br><font color='#FF8000'>------解决思路----------------------</font><br>16</PY><br /><PY>1B0004<br><font color='#FF8000'>------解决思路----------------------</font><br>地产指数<br><font color='#FF8000'>------解决思路----------------------</font><br>DCZS<br><font color='#FF8000'>------解决思路----------------------</font><br>16</PY><br /><PY>1B0005<br><font color='#FF8000'>------解决思路----------------------</font><br>公用指数<br><font color='#FF8000'>------解决思路----------------------</font><br>GYZS<br><font color='#FF8000'>------解决思路----------------------</font><br>16</PY><br /><PY>1B0006<br><font color='#FF8000'>------解决思路----------------------</font><br>综合指数<br><font color='#FF8000'>------解决思路----------------------</font><br>ZHZS<br><font color='#FF8000'>------解决思路----------------------</font><br>16</PY><br /></root><br />EOF;<br /><br />$s = simplexml_load_string($str);<br />foreach($s->xpath("//PY") as $k=>$v){<br /> list($a[],$b[],$c[])=explode('<br><font color='#FF8000'>------解决思路----------------------</font><br>',$v);<br />}<br />echo "<pre class="brush:php;toolbar:false">";<br />print_r($a);<br />print_r($b);<br />print_r($c);<br />echo "";
/*
Array
(
[0] => 1A0003
[1] => 1B0001
[2] => 1B0002
[3] => 1B0004
[4] => 1B0005
[5] => 1B0006
)
Array
(
[0] => B股指数
[1] => 工业指数
[2] => 商业指数
[3] => 地产指数
[4] => 公用指数
[5] => 综合指数
)
Array
(
[0] => BGZS
[1] => GYZS
[2] => SYZS
[3] => DCZS
[4] => GYZS
[5] => ZHZS
)
*/

aphpdepentioncontiveContainerIsatoolThatManagesClassDeptions,增强codemodocultion,可验证性和Maintainability.itactsasaceCentralHubForeatingingIndections,因此reducingTightCightTightCoupOulplingIndeSingantInting。

选择DependencyInjection(DI)用于大型应用,ServiceLocator适合小型项目或原型。1)DI通过构造函数注入依赖,提高代码的测试性和模块化。2)ServiceLocator通过中心注册获取服务,方便但可能导致代码耦合度增加。

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)启用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替换loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

phpemailvalidation invoLvesthreesteps:1)格式化进行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)

tomakephpapplicationsfaster,关注台词:1)useopcodeCachingLikeLikeLikeLikeLikePachetoStorePreciledScompiledScriptbyTecode.2)MinimimiedAtabaseSqueriSegrieSqueriSegeriSybysequeryCachingandeffeftExting.3)Leveragephp7 leveragephp7 leveragephp7 leveragephpphp7功能forbettercodeefficy.4)

到ImprovephPapplicationspeed,关注台词:1)启用opcodeCachingwithapCutoredUcescriptexecutiontime.2)实现databasequerycachingusingpdotominiminimizedatabasehits.3)usehttp/2tomultiplexrequlexrequestsandredececonnection.4 limitsclection.4.4

依赖注入(DI)通过显式传递依赖关系,显着提升了PHP代码的可测试性。 1)DI解耦类与具体实现,使测试和维护更灵活。 2)三种类型中,构造函数注入明确表达依赖,保持状态一致。 3)使用DI容器管理复杂依赖,提升代码质量和开发效率。

databasequeryOptimizationinphpinvolVolVOLVESEVERSEVERSTRATEMIESOENHANCEPERANCE.1)SELECTONLYNLYNESSERSAYCOLUMNSTORMONTOUMTOUNSOUDSATATATATATATATATATATRANSFER.3)


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

WebStorm Mac版
好用的JavaScript开发工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器