javaで以下のXSLとXMLをnewTransformerする際にエラーとなります。
user:formatstring(・・・)の部分でエラーになっていると思うのですが、これをどう変えればOKなのかがわかりません。
javascript付のXSLをTransformerする方法がわかる方がいらっしゃいましたらご教授の程よろしくお願いします。
---エラーの内容---
エラー: '非 static Java 関数 'formatstring' への先頭引き数は有効なオブジェクト参照子でありません。
---XSL---
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:user="urn:my-scripts" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="user msxsl">
<msxsl:script language="JavaScript" implements-prefix="user">
function formatstring(nodelist, type){
var rtnStr = "";
if (nodelist.item(0) == null || nodelist.item(0).text == "") {
return rtnStr;
}
var i = type.length - 1;
var pos = nodelist.item(0).text.length - 1;
while(1){
if ( i < 0) {
break;
}
if (type.charAt(i) == "#") {
rtnStr = nodelist.item(0).text.charAt(pos) + rtnStr;
pos --;
}else {
rtnStr = type.charAt(i) + rtnStr;
}
i --; }
return rtnStr;
}
</msxsl:script>
<xsl:template match="/">
<html>
<body>
<form name="form1">
<font style="font-size:12.00px;border:0px;position:absolute;top:90.50px;left:64.60px;width:22.80px;text-align:none;">
<xsl:value-of select="user:formatstring(/aaa/P04,'##-##-##')"/>
</font>
</form>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
---XML---
<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet href="xxxxx.xsl" type="text/xsl"?>
<aaa><P04>123456</P04></aaa>
No.2ベストアンサー
- 回答日時:
くー
ダメだわ。
Domにすると読み込めるけど
変換ができなかったわ。
もっとJavaとXSLをガンガンやっている人なら
何か知っているのかもしれないわね。
ここで言うのはちょっとアレだけど
もっと上級者向けのフォーラムやメーリングリストで
質問してみるのはどうかしら。
ゴメンね
役に立てなくて。
askaaska様
回答ありがとうございます。
役に立てないなんてとんでもないです。
たくさんのヒントを頂きました。
いろいろ調べてみてDomで読み込めるようになりました。
が、書かれている通り変換が出来ません。
で、<msxsl:script ~>の部分がマイクロソフト独自要素
らしく、この書き方だとjava側でjavascriptとして認識できない
んではないかな?と思ってます。(全く見当違いかも
しれませんが。)
本当にありがとうございました。
No.4
- 回答日時:
/* <msxsl:script ~>の部分がマイクロソフト独自要素 */
すでに質問者様がお気づきのとおりです。
Windows環境限定ですが、msxsl.exeを使う事になります。
どうしてもjavaでという事ですとxalanを使った方法があります。
私はxalan-j_2_7_1-bin.zipをダウンロードしました。
解凍した中にサンプルファイルがあります。
xalan-j_2_7_1/samples/extensions/2-basicJscript.xsl
Windows環境ですとmsxsl.exeを使った方が簡単です。
No.3
- 回答日時:
以下のサイトが参考になります。
http://dev.ektron.com/kb_article.aspx?id=482
コマンドラインから打ち込めるXSLT変換ユーティリティ“msxsl.exe”などはこちらを
http://www.atmarkit.co.jp/misc/search/marker.php …
なをJavaScriptの部分には間違いがありますのでコンパイルエラーがでます。
ontojava様、回答ありがとうございます。
>以下のサイトが参考になります。
>http://dev.ektron.com/kb_article.aspx?id=482
との事でしたが、この中のソースをTransformerしても
結果は同じでした。(DOMでは読み込めるけど変換は出来ていない)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
XSLTがブラウザで表示されません。
-
XSL中の改行、タブを無効にした...
-
スタイルシートを使用したXM...
-
XSL内でJavaScriptを記述し、Ja...
-
XMLから指定テキストのみを抜き...
-
東芝のDynabookなのですがアン...
-
CPUの考え方を教えてください ...
-
UTF-8でエンコーディングとはど...
-
Access VBAでXMLが読み込めない
-
ルート要素ノードが2個ある場合?
-
コンテキストメニュークリック...
-
メモリのセクションに関して
-
xmlファイルが上手にHTMLに変換...
-
SNMP リンクダウンとノードダ...
-
XMLで要素が記述された順番に意...
-
XSLT
-
VB6でXMLを処理するには
-
複数のマックPCによる数値計算...
-
eclipseへのxmlファイル追加
-
XPathで途中に名前空間が設定さ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
タグの有無の判定
-
XSLで、XMLの空タグを制御したい。
-
スタイルシートを使用したXM...
-
XMLのHTMLへの変換 (初心者)
-
ノードの並び替え
-
XSL内でJavaScriptを記述し、Ja...
-
xmlのテキストにリンクを張りた...
-
xml→htmlへの変換&ページ分割...
-
空かスペースを認識させること...
-
XSLTにてタグ名を取得する方法
-
XMLとXSLTでリンクを張る方法
-
XSL中の改行、タブを無効にした...
-
重複するものを消したい
-
xslでの最小値、最大値の取得
-
スタイルシートについて
-
■XSLT■固定文字を使ったループ...
-
javaのTransformerでエラー
-
for-eachが上手くいきません
-
XMLデータを動的に使用する
-
XSLTで固定長データファイルを...
おすすめ情報