2017-05-12 1 views
0

ich versuche, etwas Text von der bibliographischen Datenbank zu analysieren, der nicht Standardtabellen enthält. Spezifikationen von Artikeln können oder dürfen nicht existieren, wenn sie existieren, haben sie dieselben Tags für ihre Spezifikationen. Beispielsweise; Alle Artikel haben Titel, aber nur einige von ihnen haben einen Abschnitt mit Keywords. aber wenn sie diesen Abschnitt haben es mit Standard-Tags wie gezeigt, dass:wie man Text findet und ganzen Abschnitt mit xpath extrahiert

<tr> 
 
<td align="right" valign="top" nowrap="nowrap">Database Name: </td> 
 
<td>Social Science Database</td> 
 
</tr> 
 
<tr> 
 
<td align="right" valign="top" nowrap="nowrap">Journal: </td> 
 
<td>Social Science and Education, 2011,8(4):29-42</td> 
 
</tr> 
 
<tr> 
 
<td align="right" valign="top" nowrap="nowrap">Author: </td> 
 
<td>James H.; Chaomei C.</td> 
 
<td align="right" valign="top" nowrap="nowrap">Type: </td> 
 
<td>Journal</td> 
 
</tr> 
 
<tr> 
 
<td align="right" valign="top" nowrap="nowrap">Article Type: </td> 
 
<td>Research Article</td> 
 
</tr> 
 
<tr> 
 
<td align="right" valign="top" nowrap="nowrap">Retrieve Type: </td> 
 
<td>Bibliographic</td> 
 
</tr> 
 
<tr><td align="right" valign="top" nowrap="nowrap">Language: </td> 
 
<td>En</td> 
 
</tr> 
 
<tr> 
 
<td align="right" valign="top" nowrap="nowrap">Abstract Language: </td> 
 
<td>En</td> 
 
</tr>

Hier ist meine Frage. Ich versuche, Text mit Knime mit Xpath zu analysieren, aber ich konnte nichts erreichen, was ich will. Ich möchte <tr> finden, die spezifischen Text enthält und zweite <td> 's von diesem Abschnitt nehmen. Zum Beispiel: für "Datenbankname:" Xpath muss "Social Science Database" erhalten.

habe ich versucht, diesen Code:

.//dns:tr//text()[contains(., 'Database Name:')]

Aber Ergebnis enthält nur erste, ich brauche zweite one.I auf diesen Code versucht, aber es bringt nichts.

.//dns:tr//text()[contains(., 'Database Name:')]/dns:td[*] 
+0

http://stackoverflow.com/questions/3139402/how-to-select-following-sibling-xml-tag-using-xpath –

Antwort

1

Sie können dies versuchen:

.//dns:tr//text()[contains(., 'Database Name:')]/../../dns:td[2] 

.. bringt Sie zu den Eltern. Sie müssen 2 Stufen durchlaufen und den 2. td bekommen.

+0

Danke für die Antwort, endlich hat es funktioniert. Kannst du erklären, warum du "/../../" eingibst? Was ist seine Funktion? –

+0

Ich habe die Antwort aktualisiert. –

Verwandte Themen