問題タブ [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 投票する
1 に答える
124 参照

xslt - EXSLT 構文の問題

これは明らかなことですが、次のコードにはマークされた行に 2 つのエラーがあります。

エラーは次のとおりです。

  • タグに閉じ括弧 '>' がありません
  • 終了タグ「date:day-in-month」がありません

私が見る限り、どちらも当てはまりません。何か考えがありますか、それとも私は盲目ですか?

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

xslt - EXSLT func:returnの問題xsl:for-each "loop"およびfunc:function

私の問題:
アトムRSSフィードファイルが豊富にあり、その中には多くの異なるアトムエントリがあり、ファイル間でいくつかの重複するエントリがあります。RSSフィードのいずれかからのURLに基​​づいてエントリを見つけて返す必要があります。

テクノロジー:
このコードは、XSLT1を使用するPHP5.2.10のXLSTProcessor拡張機能を介して実行され、EXSLTをサポートし、組み込みのPHP関数を実行する機能を備えています。Saxan、Xalan、または他の同様のソリューションは、この特定の状況ではあまり役に立ちません。

次のコードは大幅に簡略化されていますが、私の状況を表しています。

rss-feed-names.xml:

stylesheet.xsl

このコードは、探しているアトムエントリが、調べているファイルの1つに表示されている場合に問題なく機能します。そのファイル内に複数回表示される場合がありますが、2つ以上のファイルに表示されるとすぐに、func:resultが既にインスタンス化されて上書きされているため、コードが壊れます。これはXSLTではノーノーです。

EXSLT関数またはxsl:for-each「ループ」を実際に終了する方法がある場合(関数に戻り変数を割り当てることはできますが、関数は続行されます。for-eachは実際にはループではありませんが、関数に似ています。マップ)、それは理想的ですが、私はまだ方法を見つけていません。

すべてのフィードを1つの変数に結合し、for-eachループを完全に削除することを検討しましたが、これを最初から機能させるのに問題がありました。

他の可能な解決策、アイデア、またはポインタは大歓迎です!ここでのファイルの関係とXMLを変更するのはかなり難しいため、そのような変更を提案するソリューションは理想的ではありません。

よろしくお願いします、
トリスタンイーストバーン

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

xslt - XSLT:1月以外の開始に基づいて年を計算する

4月6日からの年に基づいて年を計算しようとしています。

EXSLTを使用すると、通常の1月の開始に基づいて年を取得できます。

どうすれば同じことができますが、4月6日から1年間です。

ありがとう。

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

xml - Exslt を使用して XML から XML への問題を解決する方法 - set:distinct

これは、XSL を使用して XML から XML に拡張されます 問題 私は exslt をインポートし、次のように与えられた解決策 (Kyle Butt に感謝) に従ってコードを修正しました:

しかし、出力に「Function set:distinct() has failed.」というエラーが表示されます。値を null にすることはできません。これを解決するには?

ところでXML入力:

& 必要な XML 出力:

0 投票する
3 に答える
3121 参照

xml - exslt.org 拡張機能

変換の 1 つで exslt 拡張機能を使用しようとしています。このサイトから、xml ファイルを 1 つに連結する方法の例を入手しました。

名前空間と要素のプレフィックスを正しく実装しましたが、コマンドラインから実行しようとするたびに、次のエラーが表示されます...

{ http://exslt.org/common }node-set() という名前の一致する引数が 1 つの関数が変数 step-concat に見つかりません(ファイル名と行番号はここにあります)

私はこのことにかなり慣れていないので、何がうまくいかないのかわかりません。私のxslファイルは

私は何を間違っていますか?exslt.org からモジュールをダウンロードしようとしましたが、まったく意味がありません...

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

xml - XMLの連結

xmlのファイルが3つあります

各ファイルには同じ製品(./nameによる)がありますが、サブ製品(./nameによる)が異なります。製品/名前ごとに1つの製品を含む1つのツリーに連結し、同じルールのすべてのサブ製品を含める必要があります。 1つの構造を出力できます。

xsltメソッドが見つかりました。これにより、以下のようなノードセットが作成されます。

しかし、これは、他のテンプレートを作成すると、製品/名前で3つの製品が作成されます。つまり、キプロスが3回表示されます。

誰かが私が求めていることを行う方法を知っていますか?私の結果は次のようになる必要があります

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

c# - exslt.dynamic.evaluateをc#に実装する(XslCompiledTransform)

exslt:dynamicモジュールを使用するスタイルシートがあります。より正確には、evaluate関数のみを使用します。.NET 2.0のXslCompiledTransformがこのモジュールを実装していないことを知っています(Mvp.XmlのExslTransformと同じように)。

この問題を解決する方法はありますか?

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

xslt - ソートされた exsl:node-set。ノードをその位置で返す

ノードのセットがあります

今はこのように整理しています

ここで、ソートされた配列内の任意の要素をその位置の番号に取得する必要があります。私はコードを使用しています:

応答エラーが発生します。どうすればいいですか?

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

xslt - EXSLT date:document() を使用しない format-date テンプレート XSLT 1.0

date:format-date テンプレート EXSLT ファイルを使用しています。XSLT 1.0 と MSXML3.0 をプロセッサとして使用しています。

私の date:format-date テンプレート EXSLT ファイルの宣言は次のとおりです。

サードパーティの制限により、document() 関数を使用できません。そこで、XML スニペットから(同様に) 月と日を変更しました。

変数に:

それに応じて、元々 document() 関数を使用していたコードを次のように変更しました:
[EXSLT スタイルシートの月処理ビットから]

MSXML3.0ノードセット関数を使用するには:

だから、これはうまくいくだろうと思いました。

EXLT の指示によると、「フォーマット パターン文字列は、JDK 1.1 SimpleDateFormat クラスの説明どおりに解釈されます。」 [現在のバージョンを使用しました]。

SimpleDateFormat クラスに従って月を'dd MMMMM yyyy' として指定しているので、月は完全な月の名前 (1 月など) になります。しかし、それは機能しません:(私はEXSLTスタイルシートを調べましたが、それを行うロジックがあります。また、「E」パターンを使用して曜日の名前を表示するロジックがありますが、これは機能しませんdocument() の使用から変数への変更がそれを壊したのかもしれません。

本当に助けていただければ幸いです。

どうもありがとう!

SimpleDateFormat クラスのドキュメントから理解しているように、これは2010 年 7 月 1 日になるはずであり、得られるのは01 07 2010です。



これにより、 2010 年 7 月 1 日月曜日になり、2010 年 7 月1日 01 07が得られます。

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

xslt - xsl:variable にはノードセットが含まれます。変数のn番目のノードを出力するには?

XML ドキュメントを変換しています。@prettydate「2010 年 5 月 7 日金曜日」のような文字列である属性があります。その文字列を分割して、月と年にリンクを追加したいと考えています。モジュールを使用しておりexslt:strings、他の必要な EXSLT モジュールを追加できます。

これまでの私のコードは次のとおりです。

$prettyparts を実行し<xml:for-each/>て、予想されるノードセットを取得していることを確認しました。

しかし、どの方法で特定のもの<token>を (foreach ではなく) 直接参照しようとしても、無効な型とは関係なく、何もまたはさまざまなエラーが発生します。私が試した構文の一部を次に示します。

式がどうあるべきか考えていますか?

ETA: @DevNull の提案のおかげで、正しい表現は次のとおりです。

そして、変数を次のように設定する必要があります。