2017-07-07 24 views
0

XMLファイルに新しいレジスタを追加していますこのファイルには' and "のような特殊文字があります。 transformerFactoryはこれを 'と'に変更します。Java XML - JavaはXMLファイルを生成するときにと"を 'と'に変更します

これは私のコードです:

Document document = documentBuilder.parse("Input.xml"); 
//Here I add the nodes in document 
DOMSource source = new DOMSource(document); 

TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
Transformer transformer = transformerFactory.newTransformer(); 

StreamResult result = new StreamResult("Result.xml"); 
transformer.transform(source, result); 

私はtransfomerにこの行を追加しようとしたが、うまくいきませんでした:

transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); 
    transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); 

例:

入力:

<Users> 
    <User Name="Daniel"> 
     <Option Name="Salt">jJ=&apos;\Cl%MST&quot;U.ivm/FwI+TJC=IalOJg2z8\L}b;&lt;=OZ}qz`|_|[`y~)J,pEbWx_</Option> 
    </User> 
</Users> 

出力:追加先他のオプション塩とMと私は、XML、Javaが私にこの文字ダニエルと他のユーザーからの&apos; and &quot;変更生成:私が欲しいもの

<Users> 
    <User Name="Daniel"> 
    <Option Name="Salt">jJ='\Cl%MST"U.ivm/FwI+TJC=IalOJg2z8\L}b;&lt;=OZ}qz`|_|[`y~)J,pEbWx_</Option> 
    </User> 
    <User Name="Tom"> 
    <Option Name="Salt">salt1234</Option> 
    </User> 
</Users> 

を:私はgenereteとき、この特殊文字をエスケープするにはどうすればよい

<Users> 
     <User Name="Daniel"> 
     //Here there are &apos and &quot and in output no 
     <Option Name="Salt">jJ=&apos;\Cl%MST&quot;U.ivm/FwI+TJC=IalOJg2z8\L}b;&lt;=OZ}qz`|_|[`y~)J,pEbWx_</Option> 
     </User> 
     <User Name="Tom"> 
     <Option Name="Salt">salt1234</Option> 
     </User> 
    </Users> 

新しいXMLファイル?

ありがとうございます!

+0

出力をどのようにしたいですか?現在の入力とまったく同じですか? –

+0

いいえ、xmlファイルにがあります。新しいユーザーを追加すると、この文字が他のユーザーから変更されます。このオプションはユーザーにあります。 – Xavi

+0

」と「」タグはあなたの質問に何が関係していますか?私はどこにあなたが元の投稿でこれらを言及して表示されません。 –

答えて

1

出力に&apos;という文字列を使用する場合は、&からエスケープするだけです。入力は&amp;apos;である必要があります。

+0

を参照してください。これは私にとっては役に立ちません。出力は同じです。 & apos; - > & apos; – Xavi

関連する問題