2008-12-02 12 views
8

मैं एक कस्टम XmlDeclaration बनाना चाहते C# .net 2 या 3मैं XmlDocument/XmlDeclaration के साथ एक कस्टम XmlDeclaration कैसे जोड़ूं?

यह है मेरी वांछित निर्गम (यह एक 3 पार्टी अनुप्रयोग द्वारा अपेक्षित उत्पादन होता है) में XmlDocument/XmlDeclaration कक्षाओं का उपयोग करते समय होगा:

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<?MyCustomNameHere attribute1="val1" attribute2="val2" ?> 
[ ...more xml... ] 

XmlDocument/XmlDeclaration वर्गों का उपयोग करना, यह मैं सिर्फ मानकों का एक परिभाषित सेट के साथ एक एकल XmlDeclaration बना सकते हैं प्रकट होता है:

XmlDocument doc = new XmlDocument(); 
XmlDeclaration declaration = doc.CreateXmlDeclaration("1.0", "ISO-8859-1", null); 
doc.AppendChild(declaration); 

वहाँ एक वर्ग XmlDocument/XmlDeclaration मैं चाहिए के अलावा अन्य है कस्टम XmlDeclaration बनाने के लिए देख रहे हो? या XmlDocument/XmlDeclaration कक्षाओं के साथ ही कोई तरीका है?

उत्तर

19

जो आप बनाना चाहते हैं वह एक एक्सएमएल घोषणा नहीं है, बल्कि एक "प्रसंस्करण निर्देश" है। आप XmlProcessingInstruction वर्ग, नहीं XmlDeclaration वर्ग, उदा .:

XmlDocument doc = new XmlDocument(); 
XmlDeclaration declaration = doc.CreateXmlDeclaration("1.0", "ISO-8859-1", null); 
doc.AppendChild(declaration); 
XmlProcessingInstruction pi = doc.CreateProcessingInstruction("MyCustomNameHere", "attribute1=\"val1\" attribute2=\"val2\""); 
doc.AppendChild(pi); 
+0

@Bradley - धन्यवाद! –

5

का उपयोग करना चाहिए तुम एक XmlProcessingInstructionXmlDocument की CreateProcessingInstruction विधि का उपयोग कर बनाई संलग्न करना चाहते हैं।

उदाहरण:

XmlDocument document  = new XmlDocument(); 
XmlDeclaration declaration = document.CreateXmlDeclaration("1.0", "ISO-8859-1", "no"); 

string data = String.Format(null, "attribute1=\"{0}\" attribute2=\"{1}\"", "val1", "val2"); 
XmlProcessingInstruction pi = document.CreateProcessingInstruction("MyCustomNameHere", data); 

document.AppendChild(declaration); 
document.AppendChild(pi); 
+0

@ ओपोज़िशनल - धन्यवाद फिर से :) ब्रैडली और आप दोनों ने इसे खींचा। –

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