我尝试使用XML标记,它已添加,但其他标记会更改值。
示例:源xml
<G_31>
<NAME Pref="1-">water , alalal xxxx, xxxxx 9420xx, xxxx.xxxx. 2376xxx (xxx xxxxxx x xxxxxxx 2324.79xx): </NAME>
<FIRMA Pref="xxxxxx.:"> xxxx xxxxx, x.x., xxxx xxxxx x.x. </FIRMA>
<TM Pref="(ТМ)"> xxxxx </TM>
<PL Pref="2-"></PL>
<PLACE>6 </PLACE>
<PLACE2>(1-xxxxx xxxxx), xx-785, xx 6 xxxxxxxxx/PX </PLACE2>
<TARA Pref="2.1-">xx</TARA>
</G_31>
转换后:
<G_31>
<NAME Pref="1-">xxxxxxxxxx x xxxxxxxx xxxxxx
xxxxxxx, xxxxx 2376xxx (xxx xxxx x xxxx 2324.79xx):
</NAME>
<FIRMA Pref="xxxxx.:"> xxxx xxxxx, x.x. </FIRMA>
<TM Pref="(ТМ)"> xxxxx
</TM>
<PL Pref="2-"/>
<PLACE>1</PLACE>
<PLACE2>, xx-785, xx 6 xxxx/PX
</PLACE2>
<TARA Pref="2.1-">xxx</TARA>
</G_31>
我使用以下代码(javax.xml):
public void changeXML(String fileName) {
File xmlFile = new File(filename);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
try {
builder = factory.newDocumentBuilder();
Document doc = builder.parse(xmlFile);
doc.getDocumentElement().normalize();
addElement(doc);
doc.getDocumentElement().normalize();
StringWriter writer = new StringWriter();
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(writer);
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputKeys.ENCODING, "cp1251");
transformer.transform(source, result);
String strResult = writer.toString();
System.out.println(strResult);
// addFileInAltaLoader(strResult, fileName.replaceAll("/", "_"));
System.out.println("XML changed!");
} catch (Exception exc) {
exc.printStackTrace();
}
}
但是它的代码全部删除了(&#10;)并添加了\ r \ n 如何在xml中添加一个标签而不更改其他标签?