如何使用PHP SimpleXML筛选XML中EN语言的职位数据?
解决方法:仅显示EN语言的招聘信息
要实现只展示<LANGUAGE>为EN的条目,你只需要在循环遍历<AD>节点时,增加一个条件判断即可。这里需要注意XML里的<LANGUAGE>包含CDATA,不过SimpleXML可以直接读取其文本内容,记得用trim()去除可能存在的空白字符(比如换行、空格),避免判断失效。
修改后的PHP代码
<?php $xml = simplexml_load_file('https:/dffsfdsdf.en/export.php'); foreach ($xml->AD as $foo) { // 读取并清理LANGUAGE节点的内容 $language = trim((string)$foo->LANGUAGE); // 仅输出EN语言的条目 if ($language === 'EN') { ?> <div class="item"> <a href="<?php echo esc_url( home_url( '/' ) ); ?>/?ID=<?php echo $foo->ID?>" class="title"> <div class="row"> <div class="col-6"><h3><?php echo $foo->JOB_TITLE?></h3></div> <div class="col-3 text-center"><?php echo $foo->CITY?></div> <div class="col-3 text-right"><span class="see"><span class="close"><?php _e('more', ''); ?></span></span></div> </div> </a> </div> <?php } } ?>
关键细节说明
(string)$foo->LANGUAGE:将SimpleXML对象转换为字符串,直接获取<LANGUAGE>节点内CDATA的文本内容trim():去除内容前后的换行、空格等空白字符,解决XML格式中可能存在的排版空白问题$language === 'EN':严格匹配语言标识,确保只有语言为EN的招聘信息才会被渲染输出
对应XML结构参考
<AD UID="MzMwODFfMF8yNTM4_0"> <ID>MzMwOTJfMF8yNTM4_0</ID> <JOB_TITLE>...</JOB_TITLE> <CATEGORY>0</CATEGORY> <CATEGORY2>0</CATEGORY2> <EXP_DATE>2020-02-17</EXP_DATE> <START_DATE>2020-01-18</START_DATE> <COMPANY>...</COMPANY> <REGION_ID>7</REGION_ID> <CITY>...</CITY> <APPLY_LINK>...</APPLY_LINK> <REF_NO>...</REF_NO> <LOGO>...</LOGO> <FULL_HTML>...</FULL_HTML> <LANGUAGE> <![CDATA[ EN ]]> </LANGUAGE> </AD>
内容的提问来源于stack exchange,提问作者Greg21
相关产品推荐
相关产品推荐

