You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 12:02:34