7.3.1. 要素番号を取得するSDQL

 要素番号を取得する SDQL には次のものがあります。

(child-number snl)

 snl の子番号を返します。要素の子番号は、ツリー上で先に現われる兄弟要素(これらの要素は同じ要素名を持つ)の番号に 1 加えたものになります。

(ancestor-child-number string snl)

 要素名が string となる snl に最も近い先祖の子番号を返します。該当する先祖がない場合は #f を返します。

(hierarchical-number list snl)

 引数 list と同じ要素数のリストを返します。引数 list の各要素は gi[1]を示す文字列で、これに一致する要素のうち最も snl に近い先祖の子番号が、戻り値となるリストの各要素となります。要素の並び順は引数 list に準じます。

(hierarchical-number-recursive string snl)

 正の整数のリストを返します。string は gi を示す文字列で、これに一致する要素のうち最も snl に近い先祖を再帰的に辿って取得した各要素の子番号が戻り値のリストの要素になります。
 図7.2を例にすると、string = listitem, snl = para = (current-node) とした場合、(hierarchical-number-recursive “listitem” (current-node))は図中のグレーで示されている要素を、ツリーの逆順に(つまり親から親へと)辿り、戻り値として各要素の子番号をツリー順に格納したリストを返します。(よってリストの要素数は string で示された gi のネストレベルに一致します)。この例であれば、結果は (2 3 1) となります。


図 7.2 子番号を再帰的に取得する

(element-number snl)

 snl と同じ gi を持つ要素のうち、snl より前あるいは等しい要素の数を返します。

 正の整数を要素とするリストを返します。list は文字列のリストで gi を示し、snl の前あるいは snl に一致する要素のうち list で示した gi に一致する要素の数が、戻り値のリストの要素となります。

[1]p.29参照。

<<prev      next>>

© 2021 NEXTSOLUTION CO.,LTD