0
xqueryを使用して、ソースxmlファイルの値を検索し、svgファイルと比較しています。ここ は私のXQueryです:xquery関数 "functx:between-inclusive"を使用すると、最初の引数が2つの異なる属性値から来る可能性はありますか?
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
すべての$ XVAL(SVGのテキスト要素)が@x属性を持っている時には、上記XQueryはうまく動作します。しかし、一部の$ xvalは、@ transform = "行列(0 -1 1 0 248.402 118.972)"を持ちます。ここで、xの値は行列の5番目の位置です。
functx:between-inclusiveの最初の引数は2つの異なる属性値から来る可能性はありますか?
良い方法がありますか?
迅速な対応をありがとう!あなたの合計はまさに私がやろうとしているものです。ただし、let節を追加しても何も返されません。別の方法がありますか?私はSaxon-EE xqueryを使用しています。9.5.1.7 – user3618078
この回答はあなたが質問で尋ねたことを行います。それでも問題が解決しない場合は、コードに別のエラーがある可能性がありますが、テストデータを提供していないため知ることは不可能です。また、あなたのクエリには含まれていない '$ rdi'という変数を参照していますので、これは大きなクエリのほんの一部であると考えて、さらに問題を複雑にしています。私は新しい問題の小テストケースを作成し、それをサンプルデータと別の質問として投稿することをお勧めします。それがあなたを助けたなら、この答えを受け入れてください。 – wst
svgファイルにエラーが見つかりました。私はこれらの名前空間を削除した後、svgファイルからxmlns = "http://www.w3.org/2000/svg" xmlns:xlink = "http://www.w3.org/1999/xlink"コードが動作します! – user3618078