問題タブ [exslt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
199 参照

xslt - カスタム定義の xsd タイプのセパレーターといくつかの要素を組み合わせるには、xslt を定義する必要があります

2、3、または 4 つの子を持つカスタム型がいくつかあります。したがって、これらの子を取得するたびに、出力 XML の親タグ自体である単一の要素に結合する必要があります。試してみましたが、xslt の経験がないためできませんでした。誰でも助けることができますか?

私の入力 XML。

出力 XML は次のようになります。

ここで詳細、ステータス、バルクなどを確認すると、子ノード NUMBER、Description、NUMBER01、NUMBRER02 を持つカスタム タイプです。そして、それらを区切り記号「;」で組み合わせる必要があります。それらが空またはnullの場合、「;;;」になります REPORTフィールドに示されているように、宛先列に。

また、雇用主のような雇用者タイプのフィールドがいくつかあり、雇用者の ID、FNAME、LNAME があり、雇用者フィールドに示されているように、それらを ID: FNAME、LNAME として結合する必要があります。

1 つのカスタム タイプの処理方法を知っていれば、他のタイプも簡単に処理できると思います。

助けていただけますか?私はすでにこれに丸一日を費やしており、これをできるだけ早く行う必要があります.

0 投票する
1 に答える
655 参照

xslt - func:function 戻り結果ツリー フラグメント

Xalan-j 2.7.1 を使用しています。exslt func:function 拡張機能の xalans 実装を使用して関数を作成しました。出力xmlの繰り返し可能な部分を関数に使用して、xsltをよりきれいにしようとしています。次の関数は、私がやろうとしていることを表しています。

予想される出力は xml ツリー フラグメントですが、出力が表示されません。exslt.orgのドキュメントに記載されていますが、なぜこれが機能しないのかわかりません

xslt

0 投票する
1 に答える
175 参照

xml - EXSLT カスタム関数により、スタイルシートが「ネストされた適用テンプレート呼び出しが多すぎます」というエラーを返す

func:functionEXSLT の要素を使用して、スタイルシートで使用する「三項演算子」拡張関数を実装しようとしました。互換性の理由から、XSLT 1.0 を使用する必要があります。私はこれを思いついた:

どこで使用しても問題なく動作します。ただし、substring-after-last 関数も実装しようとしました (ここから)。このコードは正常に動作します:

この方法でも機能します:

…しかし、「三項」関数を使用して実装しようとすると、機能しません。

これは機能しません:

この方法により、スタイルシートで次のエラーがスローされます。

-Xss16m スイッチを使用して Java のスタック サイズを増やそうとしましたが、Saxon が OutOfMemoryError (Java ヒープ スペース) をスローするだけです。この関数に送信するデータ セットはかなり小さいため、オーバーフローが発生する場所と、スタック サイズを増やす必要がある理由がわかりません。

私は何を間違っていますか?

0 投票する
1 に答える
495 参照

xml - IE および Chrome の XSLT 関数 exslt:object-type

EXSLT は、XSLT に一連の便利な拡張機能を提供します。おそらくほとんどの人が exslt:node-set 関数を使ったことがあるでしょう。EXSLT によって指定される他の関数の 1 つは、「exslt:object-type」です。残念ながら、ほとんどのブラウザー (Firefox を除く) はこの機能をサポートしていないようです。参照: http://greenbytes.de/tech/tc/xslt/ スクリプトを使用して IE でこの機能を実装することはできましたが、Google Chrome の回避策が見つからないようです。(これは、IE が Chrome よりも優れていると思われる場合の 1 つです)。

私のアプリケーションの主な目的は、引数が「ノード セット」であるかどうかを調べることです。または、より正確に言うと、xsl:apply-templates で引数を選択できる場合。

IE の実装は次のようになります。

問題は、Google Chrome で同様のことを行う方法です。

これは完全に自動化されたプロセスであると想定されているため、解決策はソース スタイルシートを手動で書き直すことではないことを理解してください。

私のシナリオは次のとおりです。エージェントが XML + XSLT を送信すると、プロセスは XSLT を自動的に書き換えて、xsl:value-of を xsl:apply-templates に変換します。xsl:value-of の select 属性のタイプは問題ではありませんが、select 属性をノードセットに解決できない場合、xsl:apply-templates は失敗します。

0 投票する
2 に答える
210 参照

xml - EXSLTノードセットは属性を取り除きますか?

これは以前から気になっていたのですが、どうやって回避したか思い出せません。EXSLT は、XML の文字列をノード設定するときに属性を削除しているようです。

これは不自然な例です (簡潔にするために XSLT スタイルシート タグを削除しましたが、EXSLT の共通ライブラリが名前空間に読み込まれていますexsl)。

XML

XSLT:

結果

デモ プレイグラウンド(出力ソースを参照)

0 投票する
1 に答える
838 参照

xml - EXSLT を使用してファイルが見つかりません

EXSLTの使用を開始しようとしています。

これが私のベース XSL です。

EXSLT Web サイトから共通モジュールをダウンロードしました。( http://www.exslt.org/exsl/index.html )

このモジュールの構造は次のとおりです。

これを抽出してベース XSL と同じディレクトリに配置し、exsl.xsl とベース xsl が同じフォルダにあるようにします。

exsl.xsl は言う

最初に関数フォルダーを指していないため、これ自体が間違っているようです。ただし、機能を追加しても:

XMLSpy で 'Local file not found' エラーが発生します。

これを開始する方法はありますか?

0 投票する
1 に答える
950 参照

xml - EXSLT - math:random が機能しない

EXSLT の math:random() 関数を使いたいのですが、うまくいきません。これは私のテスト、ファイルxsltです:

これは単純なファイル xml です。

この例では、「ciao!」と表示されるべきではありません。1から10までの乱数?助けてくれてありがとう。

0 投票する
1 に答える
2504 参照

date - EXSLT date:add 関数で予期しない結果が発生する

exslt date を使用して明日の日付を取得したい。

date:date()今日の日付 ('2014-01-23') を返し、1 日 ('P1D') を追加する場合、明日 ('2014-01-24') になると予想します。しかし、代わりにの結果

「2014-01-23T23:00:00Z」です。

0 投票する
0 に答える
1418 参照

xml - {http://exslt.org/dates-and-times}date-time() という名前の一致する引数なしの EXSLT 関数が見つかりません

IntelliJ IDEA 13 を使用しています。XSLT プロセッサは SAXON です。変換で日付と時刻を変換する必要があります。EXSLT を使用することにしました。変換に追加したものは次のとおりです。

「exslt」ディレクトリは、現在の変換ファイルと同じレベルにあります。EXSLT 関数を呼び出そうとする方法は次のとおりです。

コンパイルエラーは次のとおりです。

{ http://exslt.org/dates-and-times }date-time()という名前の一致する引数なしの関数が見つかりません。ローカル名 date-time を持つ Saxon 拡張関数はありません

私が間違っていることを教えてください。日付と時刻の拡張機能は通常、SAXON でネイティブにサポートされていると読みましたが、任意の XSLT プロセッサで変換を実行できるように EXSLT を選択しました。