Пожалуйста, рассмотрите следующий XML--
<table class="rel_patent"><tbody>
<tr><td>Name</td><td>Description</td></tr>
<tr><td>A</td><td>Type-A</td></tr>
<tr><td>B</td><td>Type-B</td></tr>
<tr><td>C</td><td>Type-C</td></tr>
<tr><td>AC</td><td>Type-C
Type-A</td></tr>
<tr><td>D</td><td></td></tr>
</tbody></table>
Теперь я хочу выбрать и отобразить все значения «Имя» с соответствующими. значения элемента «Описание» ... даже когда элемент «Описание» имеет нулевые значения, а именно элемент с именем = D, а также, когда элемент описания имеет значения, разделенные вводом, я хочу, чтобы эти значения (описания) были в отдельных строках, а именно Type- C и Type-A для элемента с именем=AC
Это тип запроса, который я написал:
let $rows_data:= $doc//table[@class="rel_patent"]/tbody/tr[1]/following-sibling::tr
for $data_single_row in $rows_data
return
let $cited_name:= $data_single_row/td[1]
let $original_types_w_return:= $data_single_row/td[4]
let $original_types_list:= tokenize($original_types_w_return, '(\r?\n|\r)$')
for $cited_type_each at $pos2 in $original_types_list
return concat( $cited_name, '^', $original_type_each, '^', $pos2)
Однако я получаю ответ следующего типа:
A^Type-A^1
B^Type-B^1
C^Type-C^1
AC^Type-C
Type-A^1
Теперь мне нужно исправить следующее в приведенном выше коде + ответ ---
(1) Данные для «AC» должны быть 2 отдельными строками, где «Type-C» и «Type-A» должны находиться в каждой из 2 строк вместе с соответствующими. значение для последнего поля в каждой строке как 1 и 2 (потому что это 2 значения)
(2) Данные для "D" вообще не отображаются.
Как исправить приведенный выше код, чтобы он соответствовал этим двум требованиям?