問題タブ [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.
xslt - カスタム定義の xsd タイプのセパレーターといくつかの要素を組み合わせるには、xslt を定義する必要があります
2、3、または 4 つの子を持つカスタム型がいくつかあります。したがって、これらの子を取得するたびに、出力 XML の親タグ自体である単一の要素に結合する必要があります。試してみましたが、xslt の経験がないためできませんでした。誰でも助けることができますか?
私の入力 XML。
出力 XML は次のようになります。
ここで詳細、ステータス、バルクなどを確認すると、子ノード NUMBER、Description、NUMBER01、NUMBRER02 を持つカスタム タイプです。そして、それらを区切り記号「;」で組み合わせる必要があります。それらが空またはnullの場合、「;;;」になります REPORTフィールドに示されているように、宛先列に。
また、雇用主のような雇用者タイプのフィールドがいくつかあり、雇用者の ID、FNAME、LNAME があり、雇用者フィールドに示されているように、それらを ID: FNAME、LNAME として結合する必要があります。
1 つのカスタム タイプの処理方法を知っていれば、他のタイプも簡単に処理できると思います。
助けていただけますか?私はすでにこれに丸一日を費やしており、これをできるだけ早く行う必要があります.
xslt - func:function 戻り結果ツリー フラグメント
Xalan-j 2.7.1 を使用しています。exslt func:function 拡張機能の xalans 実装を使用して関数を作成しました。出力xmlの繰り返し可能な部分を関数に使用して、xsltをよりきれいにしようとしています。次の関数は、私がやろうとしていることを表しています。
予想される出力は xml ツリー フラグメントですが、出力が表示されません。exslt.orgのドキュメントに記載されていますが、なぜこれが機能しないのかわかりません
xslt
xml - EXSLT カスタム関数により、スタイルシートが「ネストされた適用テンプレート呼び出しが多すぎます」というエラーを返す
func:function
EXSLT の要素を使用して、スタイルシートで使用する「三項演算子」拡張関数を実装しようとしました。互換性の理由から、XSLT 1.0 を使用する必要があります。私はこれを思いついた:
どこで使用しても問題なく動作します。ただし、substring-after-last 関数も実装しようとしました (ここから)。このコードは正常に動作します:
この方法でも機能します:
…しかし、「三項」関数を使用して実装しようとすると、機能しません。
これは機能しません:
この方法により、スタイルシートで次のエラーがスローされます。
-Xss16m スイッチを使用して Java のスタック サイズを増やそうとしましたが、Saxon が OutOfMemoryError (Java ヒープ スペース) をスローするだけです。この関数に送信するデータ セットはかなり小さいため、オーバーフローが発生する場所と、スタック サイズを増やす必要がある理由がわかりません。
私は何を間違っていますか?
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 は失敗します。
xml - EXSLTノードセットは属性を取り除きますか?
これは以前から気になっていたのですが、どうやって回避したか思い出せません。EXSLT は、XML の文字列をノード設定するときに属性を削除しているようです。
これは不自然な例です (簡潔にするために XSLT スタイルシート タグを削除しましたが、EXSLT の共通ライブラリが名前空間に読み込まれていますexsl
)。
XML
XSLT:
結果
デモ プレイグラウンド(出力ソースを参照)
xml - EXSLT を使用してファイルが見つかりません
EXSLTの使用を開始しようとしています。
これが私のベース XSL です。
EXSLT Web サイトから共通モジュールをダウンロードしました。( http://www.exslt.org/exsl/index.html )
このモジュールの構造は次のとおりです。
これを抽出してベース XSL と同じディレクトリに配置し、exsl.xsl とベース xsl が同じフォルダにあるようにします。
exsl.xsl は言う
最初に関数フォルダーを指していないため、これ自体が間違っているようです。ただし、機能を追加しても:
XMLSpy で 'Local file not found' エラーが発生します。
これを開始する方法はありますか?
xml - EXSLT - math:random が機能しない
EXSLT の math:random() 関数を使いたいのですが、うまくいきません。これは私のテスト、ファイルxsltです:
これは単純なファイル xml です。
この例では、「ciao!」と表示されるべきではありません。1から10までの乱数?助けてくれてありがとう。
date - EXSLT date:add 関数で予期しない結果が発生する
exslt date を使用して明日の日付を取得したい。
date:date()
今日の日付 ('2014-01-23') を返し、1 日 ('P1D') を追加する場合、明日 ('2014-01-24') になると予想します。しかし、代わりにの結果
「2014-01-23T23:00:00Z」です。
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 を選択しました。