2016-07-23 3 views
0

XPath У меня есть этот код на веб-сайте:Как извлечь конкретный текст с imacros

<div id="1234"> 
<li> 
text I want to extract 
<span> 
text I don't want to extract 
</span> 
</li> 
</div> 

Я использую этот IMACROS код, но он извлекает оба текста:

TAG XPATH="id('1234')/li[1]" EXTRACT=TXT 

Я пытался использовать текст() в конце, но получить ошибку.

ответ

3

Для вашего конкретном случае код Shugar с некоторой настройки будут работать. Разделить \n и извлечь [1]:

TAG XPATH="id('1234')/li[1]" EXTRACT=TXT 
SET !EXTRACT EVAL("'{{!EXTRACT}}'.split('\\n')[1];") 
PROMPT {{!EXTRACT}} 

Если вы хотите более Общий подход вы можете получить li[1] и разделить по содержанию span в [0]:

TAG XPATH="id('1234')/li[1]" EXTRACT=TXT 
SET !VAR1 {{!EXTRACT}} 
SET !EXTRACT NULL 
TAG XPATH="id('1234')/li[1]/span" EXTRACT=TXT 
SET !EXTRACT EVAL("'{{!VAR1}}'.split('{{!EXTRACT}}')[0];") 
PROMPT {{!EXTRACT}} 
0

Я предлагаю просто добавить еще одну строку в коде:

TAG XPATH="id('1234')/li[1]" EXTRACT=TXT 
SET !EXTRACT EVAL("'{{!EXTRACT}}'.split('<span>')[0];") 
+0

это будет работать, если извлеченный текст будет содержать в нем, однако он только вызывает: текст Я хочу извлечь текст, я не хочу извлекать –

+0

Вы правы! Это была моя вина. (В таких случаях я предпочитаю использовать EXTRACT = HTM.) – Shugar