2008-10-02 16 views
28

मैं मौजूदा XML फ़ाइल खोलने के लिए org.w3cXML API का उपयोग कर रहा हूं। मैं कुछ नोड्स को हटा रहा हूं, और मैं इसके बजाय दूसरों को जोड़ रहा हूं।जावा: किसी XML फ़ाइल (प्रारूपण समस्याओं) को एक DOM लिखना

समस्या यह है कि जोड़े गए नए नोड्स एक के बाद एक लिखा जाता है, जिसमें कोई नई लाइन नहीं होती है और कोई इंडेंटेशन नहीं होता है। हालांकि यह सच है कि XML फ़ाइल मान्य है, मानव की जांच करने के लिए यह बहुत कठिन है।

क्या इंडेंटेशन जोड़ने के लिए वैसे भी है, या प्रत्येक नोड के बाद कम से कम एक नई लाइन है?

+0

यदि आप इस प्रश्न पर आ गए हैं कि जावा में एक्सएमएल को प्रिंट करने के लिए कोड उदाहरणों की तलाश है तो देखें [जावा से एक्सएमएल को सुंदर प्रिंट कैसे करें] (http://stackoverflow.com/questions/139076/how-to-pretty -प्रिंट-एक्सएमएल-से-जावा) इसके बजाए। –

उत्तर

55

मुझे लगता है कि आप वास्तविक लेखन (StreamResult पर) करने के लिए Transformer का उपयोग कर रहे हैं। जो मामले में, ऐसा करने से पहले आप transform फोन:

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

मदद की खुशी! –

+6

बीटीडब्लू: नवीनतम जेडीके में इसके आसपास जाने के लिए एक बग है, आपको पहले करने की आवश्यकता होगी: ट्रांसफॉर्मर फैक्टरी टीएफटीसी = ट्रांसफॉर्मर फैक्ट्री.न्यू इंस्टेंस(); tFactory.setAttribute ("इंडेंट-नंबर", 2); – Karussell

+0

चीयर्स @ करसुसेल जो मेरे पास होने वाले मुद्दों को ठीक करने में कामयाब रहे – Hayden

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

में "सुंदर छपाई" के कुछ अच्छे उदाहरण हैं स्रोत How to pretty print XML from Java?

संबंधित मुद्दे