2012-01-24 14 views
2

は、私は、これはNetbeansの中に実行する場合、XMLファイルには、クローム、IEとFirefoxの中に完全にレンダリングし、のJava XMLエンコーディングエラー

//create string from xml tree 
      StringWriter sw = new StringWriter(); 
      StreamResult result = new StreamResult(sw); 
      DOMSource source = new DOMSource(doc); 
      trans.transform(source, result); 
      String xmlString = sw.toString().replaceAll("&[^;]+?;", ""); //Replace invalid HTML characters 

      //print xml 
      System.out.println("The XML is:\n\n" + xmlString); 

      OutputStream out = new FileOutputStream(dir.getSearchFileOutputDirectory() + "\\" + "output.xml"); 

      //Write the XML to disk 
      out.write(xmlString.getBytes("ISO-8859-1")); 
      out.close(); 

今私のJavaアプリケーション内で、次のコードを実装しました。しかし、一度コードを整理してビルドした後、スタンドアロンのJARファイルを実行し、ブラウザがファイル内のエンコーディングエラーを報告し、レンダリングに失敗します。

私が見ることができる普通の、ちょうど標準的なASCII文字の何も含んでいないことは、彼らが失敗している行です。

なぜこのようなことが起こっているのか、誰にもわかりますか?私は明日のコードをデモする必要があります。そして今、なぜ突然この奇妙なことをしているのかについて、パニックになっています...

すべての入力をいただければ幸いです。

おかげ

トニー

+1

それぞれの方法で生成されたファイルに対してdiffを実行しましたか? –

答えて

1

XML対応のツールを使用するのではなく、文字とバイトのレベルでファイルを操作しているので、エンコードは完全にあなたの責任です。あなたは、出力ストリームを書くために使われたエンコーディングがXML宣言に現れるエンコーディングと同じであることを保証しようとしていないので、この種のエラーは避けられないようです。

0

XMLはHTMLではありません。その操作を置き換えることは悪いことです。スタイルシートに出力がHTMLであると表示された場合、それは動作します。出力がXMLであると言えば、それをHTMLとして使用しないでください。

関連する問題