私はJavaとXSLのスタイルシートを使ってXMLファイルから値を取り出し、それをテキストファイルに出力しています。javax.xml.transform.Sourceの文字列操作
TransformerFactory factory = TransformerFactory.newInstance();
Source xslt = new StreamSource(new File("transform.xsl"));
Transformer transformer = factory.newTransformer(xslt);
Source text = new StreamSource(new File("inputXML.txt"));
transformer.transform(text, new StreamResult(new File("output.txt"))) ;
しかし、最近、私は私が読んれるXMLファイルは2つのルートノードを持っていない1になることがわかった。以下は
を使用するプログラムです。だから私は、私は以下のエラーを避けることができるようにプログラム的に私自身のルートノードを追加するには、文字列操作を行うことを考えています:
ERROR: 'The markup in the document following the root element must be well-formed.' ERROR: 'com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: The markup in the document following the root element must be well-formed.'
をしかし、私はjavax.xml.transform.Sourceの上の任意の文字列操作の操作を行うことができません(キャスティングが機能していない)。 私は中間ノードファイルを使用してルートノードを追加したくないので、50kのXMLレコードの近くで処理する必要があるため、コストがかかることが懸念されます。
結果を達成するために「入力」がどのように処理されるかを少し変更しました。ありがとうございました 。とても有難い –