如何在父Xpath类中排除类?的PHP

时间:2018-10-27 19:41:31

标签: php dom xpath domdocument

把我带到墙上,就像这样,DOM

app.get('/arena/fight/user/:username', async (req, res) => {
   const user = await User.findById(req.session.userId);
   if(req.params.username === user.username) {
      return res.redirect('/arena');
   }
   const target = await User.findOne({username: req.params.username});
   const fight = await TempFight.findOne({user: user.username});
   if(fight && target.username === fight.target) {
      return res.redirect('/arena');
   } else {
      const battleId = uuid4();
      const newtempFight = TempFight({
         target: target.username,
         user: user.username,
         code: battleId
      });
      await newtempFight.save();
   }
   if(req.session.userId) {        
      res.render(__dirname + '/views/arena/battle', {messages, user, 
         enemy, userItems, enemyItems, liveitems, fights, lostFights});
   } else {
      return res.redirect('/');
   }
});

不是这样的...无效的参数,找不到节点:

<div class="product-intro"><p class="product-desc"><span class="product-model">234</span>Product Description</p></div>

仅此一项:

$node3 = $xp->query("//p[@class='product-desc and not(@class='product-model']");
$node3 = $xp->query("//p[@class='product-desc'][not([@class='product-model'])]");

效果很好,效果很好。 输出是

  

234产品描述

我知道我可以做一个字符串替换,但是不理想。.如何在查询中排除$node3 = $xp->query("//p[@class='product-desc']"); 类呢?

整个脚本:

product-model

1 个答案:

答案 0 :(得分:1)

如果您要选择所有p属性值为@class的{​​{1}}个元素,然后用{{过滤掉那些具有product-desc子元素的元素1}}属性值span,您可以使用以下XPath表达式:

@class

或者整体上

product-model
相关问题