de-vraag
  • 質問
  • タグ
  • ユーザー
通知:
報酬:
登録
登録すると、質問に対する返答やコメントが通知されます。
ログイン
すでにアカウントをお持ちの方は、ログインして新しい通知を確認してください。
追加された質問、回答、コメントには報酬があります。
さらに
ソース
編集
David R
David R
質問

パスコールを必要とするudfの変数の値を設定する方法

私はXSLTで特定の文字列の値を繰り返し呼び出すユーザー定義関数を使用しようとしています。この文字列は、単一の関数呼び出しの範囲内で変更されないXPath式の結果に基づいています。私はそれを変数に代入するのは良いことだと思っていました。

残念なことに、少なくともSaxonの実装では、関数内にノードを必要とするXPath式を使用することはできません。絶対パスに基づくノードであっても、最初にスローアウェイ線を使用して関数にルート文書を議論するのではなく、他の何か。

たとえば、次のコードではエラーがスローされます。



通常は、最初にグローバル変数を呼び出してコンテキストを与えるだけです。たとえば、udf($ rootはルートノードで識別される変数)内で次のように動作します。




しかし、Xpathを使って変数の値を修正しようとすると、for-eachの中に式を置くことができないので、これは機能しません。

私はまた、


to give it context, going on what I saw here:http://www.stylusstudio.com/xsllist/200504/post00240.html

それはどちらもうまくいかなかった。

"myleaf"を定義するために使用されるXpath式がコンテキストノードに依存するため、現在のコンテキストノードの値に基づいてXpathに1つのパスを呼び出す方法がわからないため、変数を関数に渡すことは問題になります。

たとえば、この関数を呼び出すコードでは、次のようなものがあります。




私は/ potato/stem [eye]ノードのコンテキストで作業しており、udfを使って@sessionIDと同じ値を持つ/ potato/stem [scc]ノードを探しています。 XMLツリーのまったく異なる部分の他のノードを検索するXPathの述語で、現在のコンテキストノードから@sessionIDの値を参照する方法がわからないので、udfを使用していました。プロセッサが毎回それを調べるのではなく、文字列に変数を使用しようとするまではうまくいきました。

私は1つのレベルを深くすることを避けようとしていました。(関数自体を名前付きテンプレートと呼ぶか、オリジナルのfor-each内に名前付きテンプレートを入れ、

だから私の質問は:

A.ユーザー定義関数の場合、XPath式に依存する変数を設定するにはどうすればよいですか?

B.テストしようとしているXpath式の述語で現在のコンテンツノードから引き出された値を使用するには、Xpathにすばらしい方法がありますか?

0 2011-10-27T19:15:18+00:00 1
Brian  Tompsett - 汤莱恩
Brian Tompsett - 汤莱恩
編集された質問 14日 6月 2015 в 9:41
プログラミング
variables
function
xslt-2.0
saxon
Dimitre Novatchev
28日 10月 2011 в 4:48
2011-10-28T04:48:00+00:00
さらに
ソース
編集
#56791864

私の質問は次のとおりです:

     

A。ユーザー定義関数の場合、依存する変数を設定するにはどうすればよいですか   XPath式で?

     

B。現在のものから引き出された値を使用するためにXpathにすばらしい方法がありますか?   あなたが試しているXpath式の述語にあるコンテンツノード   テストする?

両方の質問はかなり不明です。

A:私はあなたが実際に意味すると思います:

" xsl:function の中で、依存する変数を定義する方法   コンテキストノード? "

The answer: You can't. By definition there is no context node within an xsl:function. This is defined by the W3C XSLT 2.0 specification in the following way:

"スタイルシート関数の本体の中で、フォーカスは最初は   未定義;これは、コンテキスト項目を参照しようとする試みが、   コンテキスト位置、またはコンテキストサイズが回復不能な動的エラーです。   [XPDY0002] "

ただし、目的のコンテキストノード(または現在のものとして使用する必要があるドキュメントノード)だけをパラメータとして渡すことができます。あるいは、グローバルに定義された変数を参照することもできます。

B:この質問は完全に理解できません。

  1. 「snazzy」とは何ですか?

  2. "現在のコンテンツノード"とは何ですか?

0
0
質問の追加
カテゴリ
すべて
技術情報
文化・レクリエーション
生活・芸術
科学
プロフェッショナル
事業内容
ユーザー
すべて
新しい
人気
1
Roxana Elizabeth CASTILLO Avalos
登録済み 16時間前
2
Hideo Nakagawa
登録済み 1日前
3
Sergiy Tytarenko
登録済み 3日前
4
shoxrux azadov
登録済み 5日前
5
Koreets Koreytsev
登録済み 1週間前
© de-vraag :年
ソース
stackoverflow.com
ライセンス cc by-sa 3.0 帰属