問題タブ [xalan]

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 投票する
4 に答える
11673 参照

java - XMLの読み取り、テキストの置換、Java経由での同じXMLファイルへの書き込み

現在、私は非常に単純なことを試みています。XMLドキュメントを調べて、置き換えようとしている特定のフレーズを探しています。私が抱えている問題は、行を読み取るときに、各行をStringBufferに格納することです。私がそれを文書に書くとき、すべてが一行に書かれています。

ここに私のコード:

sb.appendを使用する場合は、改行文字が必要だと思いますが、残念ながら、「\n」として使用する文字が機能しません。

前もって感謝します!

PS Xalanを使用して、XMLファイルに書き込んだ後、XMLファイルをフォーマットする方法があるはずだと思いました。しかし、それを行う方法がわかりません。

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

java - SAXONのようなXALANレジスタ拡張関数

XALANを使ってXSLTでXMLを変換したい。拡張機能を使用したいのですが、この機能は SAXON のように Java ソースに追加する必要があります。

方法:

FooExtension:

しかし、XALAN (?FunctionTable?, ?FunctionResolver?, ?URIResolver?) でどのように機能するのか、ソースで行う必要があり、XSLT でクラスを追加することは許可されていません。

ありがとう!!

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

java - 特定のタグについてのみ XSLT を介して XML から特殊文字を削除する

XML の特殊文字に関して、特定の問題が発生しています。基本的に、Xalan Processor を使用して xml を複数の xml に分割しています。

ドキュメントを分割するとき、生成されたファイルの名前として名前タグの値を使用しています。問題は、™ (TM) や ® (R) などの XML プロセッサによって認識されない文字が名前に含まれていることです。ファイルに名前を付けるときにのみ、これらの文字を削除したい。

上記は、XML を複数の XML に分割するために作成した XSL コードです。ご覧のとおり、変換メソッドを使用して、名前の「/」、「<」、「>」を「」に置き換えています。™ (TM) と ® (R) でも同じことができると思っていましたが、うまくいかないようです。どうすればそれができるようになるか教えてください。

事前にご協力いただきありがとうございます。

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

xml - 文中のすべての単語の最初の文字を抽出し、XSLT を介して 1 つの単語にします

XSLT を介して 1 つの単語を形成するために、文のすべての単語の最初の文字を抽出しようとしています。サンプル入力

期待される出力:

前もって感謝します :)。

PS 私も XALAN Processor を使用しています。

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

xml - XSLでJavascriptを使用しているときにエラーが発生する

XMLドキュメントがあり、XSLを使用して別のXMLを作成しています。いくつかの特定の条件を確認する必要があります。そのために、XSLでJavascriptを使用したいと思います。試してみましたが、思い通りの結果が得られませんでした。XSL変数を頻繁に変更できなかったため、Javascriptを使用しようとしています。

XSL-

これは私にエラーメッセージを与えました-

[7/20/10 16:41:47:106 IST] 0000002e SystemErr R org.apache.xalan.extensions.ObjectFactory$ConfigurationError:プロバイダーorg.apache.bsf.BSFManager が見つかりません

どこが間違っているのか教えてください。

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

xml - XSLTは、1つのセクションを除いてすべてが同じであるようなXMLです。

簡単な質問です。私は1つのXMLを持っていて、他に何も変更せずに、その一部だけを変換したいと思っていました。これが私がやろうとしていることの簡単な例です:

入力:

出力

それが助けになるなら、私はXALANプロセッサーを使用しています。よろしくお願いします:D

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

java - XPath 式で exsl:node-set/set:distinct を使用して取得したノードの値を使用できないのはなぜですか?

xslt-stylesheet では、メソッドexsl:node-setset:distinctを使用して、結果ツリー フラグメントを含む変数から一意のノードにアクセスしてフィルター処理しています。これらのノードの値を出力ファイルに書き込むことができます。例:

予想どおり、キーの値が出力に書き込まれます。ただし、XPath 式で値を使用しようとすると、失敗します。

現在、出力は空ですが、input-xml に XPath 式で選択する必要がある「somenode」があり、その値が空ではないことがわかっています。

今私の質問は:なぜこれが起こるのですか?

Java 1.6、Xerces 2.7、および Xalan 2.7 を使用しています。

更新: 要求に応じて、例の一部のデータ: xml doc には以下が含まれます。

getNodes テンプレート:

0 投票する
4 に答える
9173 参照

function - Xalan 2.7に文字列関数がありません。代わりにjava.lang.Stringが使用されていますか?

Xalan 2.7.0(Apache FOP 1.0にバンドルされている)を使用していますが、文字列関数を使用すると問題が発生します。

この行の<xsl:value-of select="fn:replace('test', 't', '*')"/>結果、次の例外が発生します。

<xsl:value-of select="fn:string-length('foobar')"/>結果:

今、これは奇妙です!stringLengthXalanがで関数を探すのはなぜjava.lang.Stringですか?私はテストしました<xsl:value-of select="fn:substring('foobar', 2, 3)"/>が、実際、結果はoであるため、引数はXPathの関数の代わりにstartIndex, endIndex(のように)使用されました。java.lang.String.substring()fn:substring(string, start, length)

したがって、XalanにはXPath関数ライブラリがなく、代わりに通常のStringクラスを使用していると思います。fn:index-of('foobar', 'bar')正常に動作し、にマップされる存在しない関数を呼び出すことで、これを確認しましたjava.lang.String.indexOf(str)

Xalanがそれを行うのはなぜですか?そして、どうすればそれを修正できますか?

システム情報:Xalanは標準のMac OS X10.6.4Javaバージョン1.6.0_20を使用します。

アップデート

さて、replace()関数をしばらく脇に置いておきます。XSLT 1.0プロセッサであるXalanは、有効期限に表示される関数ではなく、XPath 1.0関数のサブストリング を実装するべきではありませんか?このstartIndex、endIndex関数がの部分文字列メソッドのように見えるのは偶然ですか?(string, startIndex, length)(string, startIndex, endIndex)java.lang.String

fn:string-lengthまた、関数を使用するとなぜNoSuchMethodErrorが発生するのですか?

ここで何かがおかしいです、そしてそれは明らかにXPath1.0対2.0についてではありません...

0 投票する
5 に答える
8811 参照

java - xmlノード/ドキュメント/フラグメントをパラメーターとしてxsltに渡す

w3c.dom.DocumentElementおよびNodeListをパラメーターとしてxslt変換に渡そうとしました。

xslt内で処理できるようにしたい:

パラメータを次のように渡します。

この例外が発生します:

'com.sun.org.apache.xerces.internal.dom.DocumentImpl'から'node-set'への無効な変換。

等も試しましたがexslt:node-set()、うまくいきxalan:nodeset()ません。

内部的には、ノードの彼自身の実装を除いて、xalanのようです。

この問題を発生させずに、どうすれば同様のことができますか?

document($param)その場でドキュメントを作成しているため、使用できません。

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

java - エラー: 「非静的 Java 関数 'evaluate' への最初の引数は、有効なオブジェクト参照ではありません。」TrasformFactory を使用する場合

xsl + xml を xml に変換しようとしています (後で FOP ライブラリを使用して pdf に変換するため)。私が使用している JDK は 1.5 であり、別の JDK を使用する方法はありません (これは、私が働いている会社が使用しているものです)。Java 1.5 の xalan jar がエラーの原因であることを読みました。エラーの原因となるテキストは次のとおりです。

の:

jarを変更せずにそれを回避する方法はありますか?違う書き方ってありますか?または、間違った構文を使用していますか?

ご協力いただきありがとうございます