2011-02-03 7 views
5

मेरे पास एक एक्सएमएल अच्छी तरह से बिना किसी रिक्त स्थान के स्वरूपित है। यह ऐसा होना चाहिए। , एक बार यह दस्तावेज़ हस्ताक्षर किया जाना चाहिएXMLDocument कैसे स्वयं-बंद टैग पर रिक्त स्थान नहीं डालता है?

 <cEAN /> 

यह असंभव है:

जब मैंने इसे XMLDocument को लोड हस्ताक्षर करने के लिए, स्वत: बंद होने टैग एक अतिरिक्त सफेद स्थान और

<cEAN/> 

हो जाता हो जाता है सफेद जगह को हटा दें।

संपत्ति PreserveWhiteSpace परिणाम के लिए किसी भी फर्क पड़ा नहीं है।

मैं इस व्यवहार को कैसे बदल सकता हूं?

+3

मैं उत्सुक हूँ। एक्सएमएल का उपभोग क्या है कि यह रिक्त स्थान से निपट नहीं सकता है? – spender

+0

यह मेरी समझ थी कि फॉरवर्डस्लाश से पहले की जगह मानक द्वारा निर्धारित की गई थी। –

+0

@ ब्रैडली: नहीं। मुझे विश्वास नहीं है कि मानक उस डिग्री के क्रमबद्ध क्रमबद्ध प्रारूप को निर्देशित करता है। –

उत्तर

3

समापन "/" XmlDocument में से पहले कोई जगह नहीं है। XmlDocument एक डेटा संरचना है जिसमें नोड्स शामिल हैं। यह बाइनरी है। यह पाठ नहीं है।

किसी भी अतिरिक्त जगह आप देख रहे हैं केवल मौजूद है जब आप पाठ के रूप में दस्तावेज़ को क्रमानुसार।

क्या आपको वास्तव में साइन इन करने में कोई समस्या है, या आपको लगता है कि आपको लगता है कि ऐसी समस्या है?

+0

आप क्रमबद्धरण के बारे में सही हैं। और मुझे एक सरकारी एजेंसी के साथ समस्या हो रही है, जो निकालने के लिए अतिरिक्त जगह को डिमांड करता है। –

+4

उन्हें एक्सएमएल सीखने के लिए कहें। उन्हें याद दिलाएं कि यह एक अंतरराष्ट्रीय मानक है। –

+0

जबकि मैं सहमत हूं, उस के साथ ओपी को शुभकामनाएँ! – spender

0

मुझे इससे पहले समस्या थी। एक्सएमएल एक मूल हैश द्वारा हस्ताक्षरित है, इसलिए जब क्रमबद्ध किया जाता है तो यह बदल नहीं सकता है। मैंने इसे एक धारावाहिक लिखकर हल किया ताकि मैं सुनिश्चित कर सकूं कि यह सही एक्सएमएल आउटपुट करेगा।

बुनियादी नुस्खा एक XMLReader साथ एक्सएमएल पढ़ें, और प्रत्येक हिस्सा लिखने के रूप में यह आता है के लिए है।

0

इसे आजमाएं:

XMLDocument दस्तावेज़;

...

स्ट्रिंग XMLstring = doc.OuterXml.Replace ("/>", "/>");