【问题标题】:java DOM parses XML in a single linejava DOM 在一行中解析 XML
【发布时间】:2020-02-10 20:04:20
【问题描述】:

所以我试图从数组列表中获取 XML。我的程序按预期工作,除了生成的 XML 都在一行中,一个元素一个元素,而不是具有通常的 XML 格式。这是我的代码:

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(); } }

有什么想法吗?

【问题讨论】:

    标签: java xml dom


    【解决方案1】:

    尝试为你的转换器添加属性:

    transformer.setOutputProperty(OutputKeys.INDENT, "yes");
    transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
    

    我认为属性的方式很明确:第一个缩进,第二个选择空格数

    【讨论】:

      【解决方案2】:

      找到刚刚改成的解决方案:

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

      现在按预期工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-18
        • 2012-01-10
        • 1970-01-01
        • 2011-01-23
        • 2014-06-15
        • 2012-09-11
        • 1970-01-01
        • 2013-01-22
        相关资源
        最近更新 更多