【发布时间】:2026-01-19 21:05:02
【问题描述】:
我正在尝试从包含非标准表格的书目数据库中解析一些文本。物品的规格可能存在也可能不存在,但如果存在,它们的规格具有相同的标签。例如;所有文章都有标题,但只有一些文章有关键字部分。但是当他们有那个部分时,它会用这样的标准标签显示:
<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>
这是我的问题。我正在尝试使用 Xpath 使用 Knime 解析文本,但我无法实现我想要的任何东西。我想找到包含特定文本的<tr>'s 并获取该部分的第二个<td>'s。例如:
对于“数据库名称:”Xpath 必须获取“社会科学数据库”。
我试过这段代码:
.//dns:tr//text()[contains(., 'Database Name:')]
但结果只包含第一个,我需要第二个。我尝试了该代码,但它什么也没带来。
.//dns:tr//text()[contains(., 'Database Name:')]/dns:td[*]
【问题讨论】: