2016-07-23 31 views
0

Ich habe diesen Code in einer Webseite extrahieren:Wie bestimmten Text mit imacros XPath

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

Ich verwende diesen imacros Code, aber es extrahiert beide Texte:

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

ich versucht wurde am Ende text() verwenden, aber einen Fehler bekommen.

Antwort

3

Für Ihren Sonderfall Shugar Code mit einigen Optimierungen arbeiten. Split \n und extrahieren [1]:

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

Wenn Sie einen mehr Allgemeiner Ansatz Sie können li[1] bekommen und geteilt durch Gehalt an span bei [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

Ich schlage vor, das Hinzufügen nur eine weitere Zeile im Code:

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

dies funktionieren würde, wenn der extrahierte Text enthalten würde drin, aber es wird nur angezeigt: Text, den ich extrahieren möchte Ich möchte nicht extrahieren –

+0

Sie haben Recht! Das war meine Schuld. (In solchen Fällen bevorzuge ich 'EXTRACT = HTM'.) – Shugar