[java] XML DOM bewerking en ontstaan extra enters

Pagina: 1
Acties:

  • morpheus
  • Registratie: November 1999
  • Laatst online: 16-08 09:43
Ik ben op dit moment met een stuk software bezig waarbij XML als w3c Document wordt opgeleverd. Hiervoor wordt simple een DocumentBuilderFactory gebruikt.

Bij wegschrijven van deze document tree bleek dat de XMLDocument van Crimson wel heel makkelijk werkte doordat deze een write functie bevatte. (Crimson zit standaard in java 1.4.1 al kun je het niet vinden in de API :P)

Probleem nu is dat bij iedere inlees actie en later weer wegschrijven dat er extra regelenters per XML regel bijkomt. Het is een beetje onduidelijk of dit nu gebeurt bij het parsen tot w3c document, of dat het gebeurt bij de cast van een w3c document naar crimson xmlDocument.

Iemand die een oplossing heeft om die regelenters weg te halen en waar het probleem zit? Gevoelsmatig heb ik het idee dat de DocumentBuilderFactory extra enters erin stopt.

3kwp pvoutput


Verwijderd

Waarom wil je de Crimson XMLDocument gebruiken? Ik gebruik gewoon de Document van de org.w3c.dom package. Nadat ik met het Document gedaan heb wat ik wil, transformeer ik het m.b.v. javax.xml.transform.dom in een nieuwe file. En klaar.

Het hele opslaan en wegschrijven doe ik dus met javax.xml.transform en niet met het Document zelf.

Van enters heb ik geen last. Sowieso vind ik dat niet belangrijk omdat je XML niet voor weergave/presentatie moet gebruiken. Het inlezen van XML gaat toch weer m.b.v. een parser... so who cares.

Maar misschien dat je normalize() kan toepassen. b.v.:
Java:
1
document.getDocumentElement().normalize();

  • morpheus
  • Registratie: November 1999
  • Laatst online: 16-08 09:43
Thanks, het werkt inderdaad een stuk beter en eigenlijk net zo makkelijk.

Waarom Crimson gebruikt werd? Stomweg doordat je een tip van iemand anders blijft volgen die je eerder gehad hebt.

XML moet in dit geval wel leesbaar blijven omdat het een configuratiebestand is wat in eerste instantie handmatig uitgebreid moet worden, pas later zal het verbeterd worden. Dus om de leesbaarheid te bevorderen. Plus dat een groeiend bestand na iedere wegschrijving niet echt wenselijk is als het groeit met ghostdata ;)

Dat laatste normalize heb ik proberen op te zoeken, maar zie het niet in de API, ben ik nu scheel? Het haalt in ieder geval niet die eerst ontstane enters weg. Overigens valt me op dat wat XML betreft er wel meer functies en/of classes niet in de API staan, terwijl ze wel in Java zitten.

Anyway, je oplossing voldoet :)

3kwp pvoutput