次の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>
ここで、「名前」のすべての値をcorrespで選択して表示したいと思います。「Description」要素の値...Description要素の値がnullの場合、つまりname = Dの要素である場合、およびdescription要素の値がEnterで区切られている場合でも、(Descriptionの)値を別々の行に配置する必要があります-viz Type- name=ACの要素のCおよびType-A
これは私が書いたタイプのクエリです-
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」のデータは、「Type-C」と「Type-A」が対応する2つの行のそれぞれにある2つの別々の行である必要があります。各行の最後のフィールドの値は1と2です(これらは2つの値であるため)
(2)「D」のデータは全く表示されていません。
これらの2つの要件に準拠するように上記のコードを修正するにはどうすればよいですか?