JavaDOM在一行中解析XML
因此,我试图从arraylist中获取XML。我的程序按预期工作,只是生成的XML都在一行中,一个元素接一个元素,而不是通常的XML格式。这是我的密码:JavaDOM在一行中解析XML,java,xml,dom,Java,Xml,Dom,因此,我试图从arraylist中获取XML。我的程序按预期工作,只是生成的XML都在一行中,一个元素接一个元素,而不是通常的XML格式。这是我的密码: public static void obtenirClientsXml(ArrayList<Client> llistaClients){ try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
public static void obtenirClientsXml(ArrayList<Client> llistaClients){
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.newDocument();
Element eRoot = doc.createElement("llista_clients");
doc.appendChild(eRoot);
// recorremos el array list
Iterator<Client> i = llistaClients.iterator();
while (i.hasNext()){
Client c = i.next();
Element eClient = doc.createElement("client");
eRoot.appendChild(eClient);
Element eNom = doc.createElement("nom");
eNom.appendChild(doc.createTextNode(c.getNom()));
eClient.appendChild(eNom);
Element eCognom = doc.createElement("cognom");
eCognom.appendChild(doc.createTextNode(c.getCognoms()));
eClient.appendChild(eCognom);
}
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult("C:/RentalClot/Clients/clients.xml");
transformer.transform(source, result);
} catch (Exception e){
e.printStackTrace();
}
}
有什么想法吗?尝试向变压器添加属性:
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
我认为属性的方法是明确的:第一个是缩进,第二个是选择空格的数量,找到刚刚更改的解决方案: 现在,它可以像suposed一样工作
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult("C:/RentalClot/Clients/clients.xml");
transformer.transform(source, result);