2012-10-10 11 views
9
<person> 
<firstname> 
<lastname> 
<salary> 
</person> 

यह एक्सएमएल है जो मैं पार्सिंग कर रहा हूं। जब मैं मुद्रण व्यक्ति के बच्चे तत्वों की नोड नाम का प्रयास करें, मैंएक एक्सएमएल नोड रिटर्न पर टेक्स्ट नोडनाम() ऑपरेशन #text

पाठ

firstname

पाठ

उपनाम

पाठ

वेतन

मैं कैसे #text को खत्म करते मिल उत्पन्न किया जा रहा है?

अपडेट - यहाँ मेरी कोड

try { 

    NodeList nl = null; 
    int l, i = 0; 
    File fXmlFile = new File("file.xml"); 
    DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
    DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 
    dbFactory.setValidating(false); 
    dbFactory.setIgnoringElementContentWhitespace(true); 
    dbFactory.setNamespaceAware(true); 
    dbFactory.setIgnoringComments(true); 

    dbFactory.setCoalescing(true); 


    InputStream in; 
    in = new FileInputStream(fXmlFile); 
    Document doc = dBuilder.parse(in); 
    doc.getDocumentElement().normalize(); 
    Node n = doc.getDocumentElement(); 

    System.out.println(dbFactory.isIgnoringElementContentWhitespace()); 
    System.out.println(n); 

    if (n != null && n.hasChildNodes()) { 
     nl = n.getChildNodes(); 

     for (i = 0; i < nl.getLength(); i++) { 
      System.out.println(nl.item(i).getNodeName()); 
     } 
    } 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
+2

आपको कोडिंग दिखाएं .. – swemon

+0

कोड प्रदान किया गया है। कृपया – coder

उत्तर

5

setIgnoringElementContentWhitespace अगर आप setValidating(true) का उपयोग करें, और उसके बाद ही एक्सएमएल फ़ाइल अगर आप संदर्भ को पार्स कर रहे हैं एक DTD कि पार्सर का उपयोग कर सकते बाहर काम करने के जो खालीस्थान- केवल काम करता है केवल पाठ नोड्स वास्तव में अनजान हैं। यदि आपके दस्तावेज़ में डीटीडी नहीं है तो यह सुरक्षित पक्ष पर गलती करता है और मानता है कि कोई भी टेक्स्ट नोड्स को अनदेखा नहीं किया जा सकता है, इसलिए आपको अपने कोड को अनदेखा करने के लिए लिखना होगा क्योंकि आप बच्चे नोड्स को पार करते हैं।

+0

आपकी प्रतिक्रिया के लिए बहुत बहुत धन्यवाद। कौन सी विधि बेहतर है? सफेद रिक्त स्थान को अनदेखा करने के लिए एक डीटीडी लिखना या एक विधि लिखना? – coder

+2

व्हाइटस्पेस-केवल टेक्स्ट नोड्स को पोस्ट-हाक (उदाहरण के लिए http://www.java.net/node/667186#comment-684625) को बाहर करना मुश्किल नहीं है और यह डीटीडी जोड़ने के लिए मूल XML फ़ाइल को संशोधित करने की आवश्यकता से बचाता है संदर्भ। –

+0

यह कमाल है! आपका बहुत बहुत धन्यवाद! – coder

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