問題タブ [msxsl]
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.
xml - (msxsl.exe を使用して) XSLT 1.0 のパラメーターにコマンド ライン経由で絶対パスを渡すにはどうすればよいですか?
WiX の heat ユーティリティによって生成された WXS ファイルがあります。別の XML ファイルの内容に基づいて特定のコンポーネントを自動的に除外するように (既存の) excludes.xslt ファイルで変更しようとしています (これをparts.xmlと呼びます)。xslt ファイルは現在、一部のコンポーネント/ファイル/ディレクトリをインストーラーから削除するために使用されていますが、比較的静的なリストです。
ただし、今のところ、私の主な関心事は、パラメーターから正しいパスを読み込んで保存し、その内容を変数に保存することです。
これは変換がどのように適用されるかです (WiX がファイル「before.wxs」への熱の収集を終了したら):
ユーザーのマシンでparts.xmlを検索するために使用される XSLT ファイル内のパラメーターとして、srcroot を渡しました。
コマンド ラインからパラメータを取得し、すべてのバック スラッシュをスラッシュに置き換えるには:
ここから取得した string-replace-allは次のとおりです。
役に立たないエラーが表示されます。
コード: 0x80004005 クエリ文字列に予期しない文字が含まれています。
しかし、投稿したコード スニペットだけを削除すると、エラーはなくなります。これをデバッグして何が起こっているのかを理解する方法はわかりませんが、調べてみると、単なるタイプミスや構文エラーではなく、何が起こるべきかについて根本的な誤解をしていると思います。
最終的には、parts.xml の内容を「myparts」に格納したいと考えています。ここで何が欠けていますか?
ありがとう!
xslt - MSXSL コマンド ライン ツールで MSXML6 を実行できますか?
現在、MSXML3 と MSXML6 をインストールしています (system32 ディレクトリにもあります)。
Windows コマンド ライン ツール MSXSL をヘルプ オプション -? で実行すると、
-u version Use a specific version of MSXML: '2.6', '3.0', '4.0'というメッセージが表示されます
「6.0」を使用しようとしても、エラーが発生します。私の質問は:
MSXSL コマンド ライン ツールで MSXML6 を使用することは可能ですか? はいの場合、どのように?
javascript - xsl 変数を JavaScript 関数に渡す
msxslで exslt.org date.msxsl.xslの date:difference 関数を使用します。文字列リテラルを使用すると、関数は正常に機能します。しかし、xml ファイルから文字列を取得して変数に入れ、それらの変数を「difference」関数に使用すると、次のエラーが発生します。
この xsl で 3 つのテストを行いました。3 つすべてが同じ日時文字列を使用します。
最初のテストでは、文字列リテラルを使用して関数を呼び出します。2 番目のテストでは、文字列を内容とする変数を使用して関数を呼び出します。3 番目のテスト (失敗したテスト) では、xml ファイルから文字列を取得します。
では、3 番目のテストの変数は 2 番目のテストの変数とどう違うのでしょうか?
3 番目のテストの関数呼び出しをコメント アウトすると、次のように出力されます。
テスト-1
PT2M1S
テスト-2
2011-12-13T16:15:26
2011-12-13T16:17:27
PT2M1S
テスト-3
2011-12-13T16:15:26
2011-12-13T16:17:27
xsl ファイル:
入力 xml ファイル:
ありがとう