Как настроить (не (содержит)) с XPath в PHP - PullRequest
2 голосов
/ 22 мая 2011

Я использую этот код PHP для захвата всего текста, содержащего '$ profile_name' при определенных условиях.

Работает нормально, как есть, но мне также нужно вытащить весь текст, который «не» содержит «$ profile_name» в одинаковых условиях.

Как это:

$outputs = $xpath->query("//span[@class='profile' and   

not(contains(.,'$profile_name'))]/../div[@class='msgbody']");

Хорошо, похоже, этот код работает, и тот, что приведен ниже, но я обнаружил, что проблема в том, что на самом деле этот бит HTML

<span class="profile">Jim Jones</span> to <span class="profile">Ronald Weasly                     
Stitch</span>

В этом случае пользователь Джим Джонс написал ответ Рональду Уизли, но выражение «Я ошибочно принял его за Рональда Уизли», так как это был самый последний промежуток времени.

<span class="profile">Jim Jones</span> to <span class="profile">Ronald Weasly</span>

<span class="time">October 21, 2010 at 10:44 am</span>

<div class="msgbody">

<div class="subject">Jeeec</div>

are you developing applications with C+ or ASP, did you see The Social Network? i sense               
a huge opportunity for semantic analysts in the future.

</div>

</div>

1 Ответ

2 голосов
/ 22 мая 2011
* +1000 * Используйте
//*[div[@class='msgbody']]
         /span[@class='profile' 
             and 
               not(contains(.,'$profile_name'))
              ]
...