問題タブ [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.
java - XMLの読み取り、テキストの置換、Java経由での同じXMLファイルへの書き込み
現在、私は非常に単純なことを試みています。XMLドキュメントを調べて、置き換えようとしている特定のフレーズを探しています。私が抱えている問題は、行を読み取るときに、各行をStringBufferに格納することです。私がそれを文書に書くとき、すべてが一行に書かれています。
ここに私のコード:
sb.appendを使用する場合は、改行文字が必要だと思いますが、残念ながら、「\n」として使用する文字が機能しません。
前もって感謝します!
PS Xalanを使用して、XMLファイルに書き込んだ後、XMLファイルをフォーマットする方法があるはずだと思いました。しかし、それを行う方法がわかりません。
java - SAXONのようなXALANレジスタ拡張関数
XALANを使ってXSLTでXMLを変換したい。拡張機能を使用したいのですが、この機能は SAXON のように Java ソースに追加する必要があります。
方法:
FooExtension:
しかし、XALAN (?FunctionTable?, ?FunctionResolver?, ?URIResolver?) でどのように機能するのか、ソースで行う必要があり、XSLT でクラスを追加することは許可されていません。
ありがとう!!
java - 特定のタグについてのみ XSLT を介して XML から特殊文字を削除する
XML の特殊文字に関して、特定の問題が発生しています。基本的に、Xalan Processor を使用して xml を複数の xml に分割しています。
ドキュメントを分割するとき、生成されたファイルの名前として名前タグの値を使用しています。問題は、™ (TM) や ® (R) などの XML プロセッサによって認識されない文字が名前に含まれていることです。ファイルに名前を付けるときにのみ、これらの文字を削除したい。
上記は、XML を複数の XML に分割するために作成した XSL コードです。ご覧のとおり、変換メソッドを使用して、名前の「/」、「<」、「>」を「」に置き換えています。™ (TM) と ® (R) でも同じことができると思っていましたが、うまくいかないようです。どうすればそれができるようになるか教えてください。
事前にご協力いただきありがとうございます。
xml - 文中のすべての単語の最初の文字を抽出し、XSLT を介して 1 つの単語にします
XSLT を介して 1 つの単語を形成するために、文のすべての単語の最初の文字を抽出しようとしています。サンプル入力
期待される出力:
前もって感謝します :)。
PS 私も XALAN Processor を使用しています。
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
が見つかりません
どこが間違っているのか教えてください。
xml - XSLTは、1つのセクションを除いてすべてが同じであるようなXMLです。
簡単な質問です。私は1つのXMLを持っていて、他に何も変更せずに、その一部だけを変換したいと思っていました。これが私がやろうとしていることの簡単な例です:
入力:
出力
それが助けになるなら、私はXALANプロセッサーを使用しています。よろしくお願いします:D
java - XPath 式で exsl:node-set/set:distinct を使用して取得したノードの値を使用できないのはなぜですか?
xslt-stylesheet では、メソッドexsl:node-set
とset:distinct
を使用して、結果ツリー フラグメントを含む変数から一意のノードにアクセスしてフィルター処理しています。これらのノードの値を出力ファイルに書き込むことができます。例:
予想どおり、キーの値が出力に書き込まれます。ただし、XPath 式で値を使用しようとすると、失敗します。
現在、出力は空ですが、input-xml に XPath 式で選択する必要がある「somenode」があり、その値が空ではないことがわかっています。
今私の質問は:なぜこれが起こるのですか?
Java 1.6、Xerces 2.7、および Xalan 2.7 を使用しています。
更新: 要求に応じて、例の一部のデータ: xml doc には以下が含まれます。
getNodes テンプレート:
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')"/>
結果:
今、これは奇妙です!stringLength
Xalanがで関数を探すのはなぜ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についてではありません...
java - xmlノード/ドキュメント/フラグメントをパラメーターとしてxsltに渡す
w3c.dom.Document
、Element
およびNodeList
をパラメーターとしてxslt変換に渡そうとしました。
xslt内で処理できるようにしたい:
パラメータを次のように渡します。
この例外が発生します:
'com.sun.org.apache.xerces.internal.dom.DocumentImpl'から'node-set'への無効な変換。
等も試しましたがexslt:node-set()
、うまくいきxalan:nodeset()
ません。
内部的には、ノードの彼自身の実装を除いて、xalanのようです。
この問題を発生させずに、どうすれば同様のことができますか?
document($param)
その場でドキュメントを作成しているため、使用できません。
java - エラー: 「非静的 Java 関数 'evaluate' への最初の引数は、有効なオブジェクト参照ではありません。」TrasformFactory を使用する場合
xsl + xml を xml に変換しようとしています (後で FOP ライブラリを使用して pdf に変換するため)。私が使用している JDK は 1.5 であり、別の JDK を使用する方法はありません (これは、私が働いている会社が使用しているものです)。Java 1.5 の xalan jar がエラーの原因であることを読みました。エラーの原因となるテキストは次のとおりです。
の:
jarを変更せずにそれを回避する方法はありますか?違う書き方ってありますか?または、間違った構文を使用していますか?
ご協力いただきありがとうございます