問題タブ [libxslt]
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.
php - PHP XSLT プロセッサを XSLT 2.0 にアップグレードする
XSLT 2.0 を使用するように PHP のライブラリをアップグレードすることは可能ですか?
現在のセットアップ:
python - 「disable-output-escaping」を使用した XSL ショート「value-of」?
次の (例) XML を処理しています。
次の (例) XSL を介して:
Python とlxml
( libxslt-1.1.17
) を使用すると、次の出力が得られます。
次のテンプレートを使用してこれを回避できることを理解しています。
しかし、それは多くのタイピングです。PHP 内で XSL を使用したことがありますが、短い形式のvalue-of
. 上記のすべてを入力し続ける必要がないように、これに対する簡単な修正はありますか?
python - Python-変換に?
私はlibxml2とlibxsltを使用してXMLファイルを処理しています。戻り値はinstance型ですが、UTF-8静的文字列が必要です。
戻り値を静的文字列に変換するにはどうすればよいですか?
助けてくれてありがとう。
php - PHP バージョンのアップグレード後に xsl:include が失敗します。libxml/libxslt バージョンの不一致が問題ですか?
windows.php.netから入手できるコンパイル済みの PHP バイナリを使用して Windows XP を実行しています。PHP 5.2.5 から PHP 5.2.16 にアップグレードしたところxsl:include
、一部のスタイルシートの が機能しなくなりました。各バージョンを連続してテストしたところ、5.2.8 までは機能し、5.2.9 以降では機能しないことがわかりました。それぞれに対して次の 3 つのエラーが発生しますxsl:include
。
これは、指定されたファイルが見つからないためだと思います。インクルードの多くは、変換されるスタイルシートと同じディレクトリにあり、パスにディレクトリがありません<xsl:include href="fileInSameDir.xsl">
。興味深いことに、1 番目と 3 番目のエラーでは、正しい 2 つのスラッシュではなく 1 つのスラッシュで file:// プロトコルが表示されています。それが問題だと思います。(「file:/」を使用してフル パスをハードコーディングすると失敗しますが、「file://」を使用してフル パスをハードコーディングすると機能します。) しかし、何が原因でしょうか? libxslt/libxml のバグ? また、libxml と、libxslt がコンパイルされた libxml のバージョンとの間に明らかなバージョンの不一致があることもわかりました。
5.2.5
libxml バージョン => 2.6.26
libxml バージョンに対してコンパイルされた libxslt => 2.6.265.2.8
libxml バージョン => 2.6.32 libxml バージョン => 2.6.32
に対してコンパイルされた libxslt=== 5.2.9 以降のバージョンでは機能しません ===
5.2.9
libxml バージョン => 2.7.3
libxml バージョンに対してコンパイルされた libxslt => 2.6.325.2.16
libxml バージョン => 2.7.7
libxml バージョンに対してコンパイルされた libxslt => 2.6.32
PHP 5.2.9 までは、libxslt は、PHP に含まれていたのと同じバージョンの libxml に対してコンパイルされていました。しかし、PHP 5.2.9 以降、libxslt は、PHP に含まれていたバージョンよりも古いバージョンの libxml に対してコンパイルされました。これは配布されたバイナリの問題ですか、それとも単なる偶然ですか?
これをテストするために、さまざまなバージョンの libxml/libxslt を使用して PHP をビルドし、どの組み合わせが機能するかどうかを確認できると思います。残念ながら、私は Windows の世界に慣れていないので、Windows で PHP を構築するのは頭がいっぱいのようです。
残念ながら、これまでのところ、この問題を自分のアプリ以外の例で再現できていないため、絞り込むのに苦労しており、特定のバグを送信することはできません.
それで、あなたはそれが原因だと思いますか
- 配布されたバイナリのバージョン不一致の問題?
- PHP 5.2.9 で導入されたバグ?
- libxml 2.7 で導入されたバグ?
- 他の何か?
私は困惑しています。私を正しい方向に向ける可能性のある考えは大歓迎です。ありがとう。
xslt - XSL でパラメーター値の型をテストする
私はLibXSLTからこれを取得しています:
param
文字列値またはノードセットのいずれかを持つことができるを渡しています。特定の部分文字列が含まれているかどうかをテストし、その場合はその値を別のパラメーターに割り当てようとしています。
呼び出しテンプレート:
呼び出されたテンプレート:
何がLibXSLTをトリップさせているのかはわかりませんが、これらのテストを実行し、値が文字列である場合、上記の型エラーがスローされるという事実だと思います。
しかし、最も重要なのは、パラメータの値のタイプをテストする良い方法はありますか?
更新: GitHubの完全な XSL スクリプト
python - libxslt の applyStylesheet() が壊れた XHTML を生成する
Python で libxslt を使用して、XSL スタイルシートを適用する XML データ ファイルを取得しました。<hr/>
ほぼ完璧ですが、XSL ファイル内の のすべてのインスタンスが<hr>
からの出力に変換されていますunicode(applyStylesheet())
。これは私がやっていることのほとんどすべてです:
私は何か間違ったことをしていますか?出力を有効な XHTML にするために欠落しているオプションはありますか?
(私の現在の計画は、行に追加.replace('<hr>','<hr/>')
してdata =
機能させることですが、もっと良い方法があるはずです。)
regex - libxsltで動作するEXSLTから正規表現を取得するには?
Regexp
libxslt で作業した人はいますか? はい、いつ、どのように?
http://www.exslt.org/regexp/index.html
xsltproc --dumpextensions
最新のlibxsltでコマンドを使用すると、正規表現のサポートが得られません:-(
unix - libxslt のインストール時に正しい libxml2 にリンクできない
インストールしようとしましlibxslt-1.1.24
たが、その間にエラーが発生しまし./configure
た:
しかし、libxml2-2.7.3
インストールされたばかりで、/usr/local/include/libxml2
new whenlibxslt
にリンクするにはどうすればよいですか?libxml2
./configure
perl - XML::LibXSLT を ActiveState Perl 5.8 にインストールする
XSLT 処理には、XML::LibXSLT を使用しようとしています。win32でActiveState Perlを使用しています。私が理解しているように、「perl Makefile.PL」を呼び出す前に、まず libxslt をインストールする必要があります。
win32 上の libxslt の場合、バイナリは既に利用可能であり、それを使用できるようです (したがって、libxslt をコンパイルしてビルドする必要はありません)。ftp://ftp.zlatkovic.com/libxml/で入手できます。
そこで、他の依存関係 (libxml、iconv、zlib) とともに libxslt...zip をダウンロードしました。
しかし、コマンド 'perl Makefile.PL' を使用してコンパイルしようとすると、次のエラー メッセージが表示されます。
このため、後続の 'dmake' コマンドもヘッダー ファイルが見つからないというエラーを出して失敗します。出力は次のとおりです。
不足している構成/セットアップを教えてください。
xslt - xslt変数ストレンジネス
誰かが私にこれを説明できますか?(最新のlibxsltを使用):
結果(現在のノードで@attrib = 1の場合):
<a>
<b>
期待される動作を示します。
<x>
私見は正しくありません。
しかし、なぜ変数に入れる@attrib
とそれが「修正」されるの<y>
でしょうか。
ところで:存在しないときはすべてが正しい@attrib is
です。ここで使用されるコピーはデバッグ用です。元の使用法はXPathの結果を数値に変換し、属性が欠落しているとNaNにはなりませんが、特定のデフォルト値になります。