2

テキストファイルを生成するシステム(Maximo)を使用しています。
ファイルの最初の行だけを削除する必要があります。
そのための方法は、XSLTを使用することです。

何か案が?

4

4 に答える 4

4

はい、XSLTでやりたいことを達成できます!

それがあなたのオプションであるならば、XSLT2.0でそうすることはおそらくより簡単でしょう。 Michael Kayは、2005年にXSLメーリングリストで同様の質問に回答しました。

小さな例で彼の答えを言い換えます:

XSLT 2.0では、unparsed-text()関数を使用してファイルを読み取り、tokenize()を使用してファイルを行に分割できます(最初の行は無視してください)。

<xsl:for-each select="tokenize(unparsed-text($in), '\r?\n')">
 ...
</xsl:for-each>

XSLT 1.0の場合:フラットテキストファイルは、XML外部エンティティであると偽って、エンティティを展開するXMLドキュメントから参照することで読み取ることができます。

<!DOCTYPE foo [
<!ENTITY bar SYSTEM "bar.txt">
]>
<foo>
&bar;
</foo>
于 2009-09-19T13:44:38.467 に答える
0

そのための方法は、XSLTを使用しないことです。

XSLTはテキストファイルを生成できますが、テキストファイルを処理することはできません。整形式のXMLのみを処理できます。

于 2009-09-18T21:02:54.030 に答える
0

XSLTは、有効なXMLファイルのみを入力として受け取り、一般的なテキストファイルは受け取りません。ただし、テキストを出力することはできます。

(たとえば、XSLTを使用してCコードを生成します。)

于 2009-09-18T21:04:05.900 に答える
0

XSLTプロセッサーがany-to-any変換(FFDを介したバイナリーxforms-フラットファイル記述子)をサポートしている場合、これを行う可能性があります。テキストをノードでラップしてから、通常のXSLTテンプレートを使用してそのノードを操作し、最初のキャリッジリターンの後にあるものを出力できます。

于 2009-09-18T21:07:02.703 に答える