dongpo2014 2012-05-06 18:31
浏览 122
已采纳

通过xpath选择多个索引的更好方法

I try to select multiple "td" inside "tr" in a complicated table structure.

$name = $sxml->xpath("
                //table[@cellspacing=0 and @cellpadding=2 and @class='mn2']
                    /tr[not(contains(@class, 'mn'))]/td[2] 
                | 
                //table[@cellspacing=0 and @cellpadding=2 and @class='mn2']
                        /tr[not(contains(@class, 'mn'))]/td[5]
                |
                //table[@cellspacing=0 and @cellpadding=2 and @class='mn2']
                        /tr[not(contains(@class, 'mn'))]/td[7]
                ");

everything is working fine, and i get what i want, but this seems a bit overkill. How can i select multiple "td" like this "td[2,5,7]" instead of using Union expression "|" ?

  • 写回答

1条回答 默认 最新

  • duan0504 2012-05-06 18:40
    关注

    It can be done with the help of or:

    //table[@cellspacing=0 and @cellpadding=2 and @class='mn2']
        /tr[not(contains(@class, 'mn'))]/td[position()=2 or position()=5 or position()=7] 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟