xquery を使用して、ソース xml ファイルの値を検索し、svg ファイルと比較しています。ここに私のxqueryがあります:
for $xval in $figure/graphic/sheet/doc(@svgsrc)//*[text() = $rdi/text()],
$line in $figure/graphic/sheet/doc(@svgsrc)/svg/line
where functx:between-inclusive($xval/@x, $line/@x2, $line/@x1)
return $line/@class
上記の xquery は、すべての $xval (svg テキスト要素) に @x 属性がある場合にうまく機能します。ただし、一部の $xval には @transform="matrix(0 -1 1 0 248.402 118.972)" があり、x 値は行列の 5 番目の位置です。
functx: between-inclusive の最初の引数が 2 つの異なる属性値から来る可能性はありますか?
より良い方法はありますか?