SORU
6 EYLÜL 2009, Pazar


XML Trafo tarafından Oluşturulan Girinti Nasıl Java:

Java XML trafo inşa DOM belgesi alıp dışarı çıkan XML yazdırmak için kullanıyorum. Bu sorun metin "girinti" açıkça. parametresi ayarlanmış olmasına rağmen girintileme değil

örnek kod

public class TestXML {

 public static void main(String args[]) throws Exception {
  ByteArrayOutputStream s;

  Document d = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
  Transformer t = TransformerFactory.newInstance().newTransformer();

  Element a,b;

  a = d.createElement("a");
  b = d.createElement("b");

  a.appendChild(b);

  d.appendChild(a);

  t.setParameter(OutputKeys.INDENT, "yes");

  s = new ByteArrayOutputStream();

  t.transform(new DOMSource(d),new StreamResult(s));

  System.out.println(new String(s.toByteArray()));

 }
}

sonuç

<?xml version="1.0" encoding="UTF-8" standalone="no"?><a><b/></a>

istenilen sonuç

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<a>
 <b/>
</a>

Düşünceler?

CEVAP
6 EYLÜL 2009, Pazar


'GİRİNTİ' ve trafo için girinti miktarını ayarlayın: . etkinleştirmeniz gerekir

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

Güncelleme:


Referans : How to strip whitespace-only text nodes from a DOM before serialization?

(Tüm üyeleri özellikle için çok teşekkürler @marc-novakowski, @james-murty ve @saad):

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Commander Chalkboard

    Commander Ch

    20 Ocak 2014
  • failblog

    failblog

    17 HAZİRAN 2008
  • The Brister

    The Brister

    10 ŞUBAT 2008