2017-07-07 97 views
0

我正在向XML文件添加一个新的寄存器,该文件有一个像' and "这样的特殊字符当我生成XML文件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); 

我尝试添加在主变差动此线,但没有奏效:

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> 

输出:我加到米,其他选项盐,当我生成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> 

我想要什么:

<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> 

当我generete怎样才能摆脱这种特殊字符新的XML文件?

谢谢!

+0

你想输出什么?与当前输入完全相同? –

+0

不,我有一个xml文件与当我添加一个新用户变压器改变我这个字符从其他用户。这个选项在用户中。 – Xavi

+0

''和''标签与你的问题有什么关系?我没有看到您在原始帖子中提到过的任何地方。 –

回答

1

如果你想要输出中的文字&apos;,那么你只需要跳过&。输入应该是&amp;apos;

+0

这对我不起作用。输出是一样的。 '&'; - > &' – Xavi