$elements = $xpath->query(
   "//message[(@sender ='".$from." and @receiver = '".$username."') or
   (@receiver='unread' and @sender = '".$username."')]"
  );

这个代码有什么问题?
我需要从我的xml文件中得到类似这样的内容

最佳答案

改为使用sprintf。它不那么凌乱,错误也更容易被发现。

$query = sprintf(
    '//message[
        (@sender = "%1$s" and @receiver = "%2$s") or
        (@receiver="unread" and @sender = "%2$s")
    ]',
    $from,
    $receiver
);

另外,确保对$from$receiver进行消毒,以防止XPath Injection attacks

关于php - 如何在xpath查询中使用多个条件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12560065/

10-09 05:28