2009-04-21 13 views
5

मैं अपने इनरएक्सएमएल प्रॉपर्टी को वेब पेज में प्रदर्शित करने के लिए आउटपुट करना चाहता हूं। मैं विभिन्न टैग के इंडेंटेशन देखना चाहता हूं। क्या इसे करने का कोई आसान तरीका है?क्या सी # में प्रदर्शन के लिए XmlDocument प्रारूपित करने का कोई त्वरित तरीका है?

+0

बार के रूप में से भी जाना जाता है और अब हम एक्सएमएल के लिए LINQ है, तो आप 'System.Xml.Linq' नाम स्थान से' XDocument' वर्ग का उपयोग कर सकते खरोज के साथ अपने एक्सएमएल बाहर मुद्रित करने के लिए: 'XDocument.Parse (doc.InnerXml) '। – jwaliszko

उत्तर

18

यहां एक छोटी सी कक्षा है जिसे मैंने कुछ समय पहले ठीक से करने के लिए रखा था।

यह मानता है कि आप एक्सएमएल के साथ स्ट्रिंग प्रारूप में काम कर रहे हैं।

public static class FormatXML 
{ 
    public static string FormatXMLString(string sUnformattedXML) 
    { 
     XmlDocument xd = new XmlDocument(); 
     xd.LoadXml(sUnformattedXML); 
     StringBuilder sb = new StringBuilder(); 
     StringWriter sw = new StringWriter(sb); 
     XmlTextWriter xtw = null; 
     try 
     { 
      xtw = new XmlTextWriter(sw); 
      xtw.Formatting = Formatting.Indented; 
      xd.WriteTo(xtw); 
     } 
     finally 
     { 
      if(xtw!=null) 
       xtw.Close(); 
     } 
     return sb.ToString(); 
    } 
} 
+1

जब आप इसे एक विस्तार विधि के रूप में जोड़ते हैं तो यह भी आसान होता है :) – Urda

+0

मैं तुमसे प्यार करता हूँ !!!!!!!!!!!!! – ChandlerPelhams

+0

स्पॉट पर, कोड के लिए धन्यवाद :) –

1

आपको कोड स्वरूपकों के साथ ऐसा करने में सक्षम होना चाहिए। आपको पहले XML में XML को एन्कोड करना होगा।

Google के पास a nice prettifyer है जो एक्सएमएल के साथ-साथ कई प्रोग्रामिंग भाषाओं को देखने में सक्षम है। एक वेब पेज पर एक xml दस्तावेज़ की सामग्री प्रदर्शित करने के लिए

<pre class="prettyprint"> 
    &lt;link href="prettify.css" type="text/css" rel="stylesheet" /&gt; 
    &lt;script type="text/javascript" src="prettify.js">&lt;/script&gt; 
</pre> 
0

उपयोग XML Web Server Control:

असल में, इस तरह एक पूर्व टैग में अपनी एक्सएमएल डाल दिया।

संपादित करें: आपको एक्सएमएल वेब सर्वर नियंत्रण की दस्तावेज़ प्रॉपर्टी में इसे प्रदर्शित करने के लिए पूरे XmlDocument को पास करना होगा। आपको इनरएक्सएमएल संपत्ति का उपयोग करने की आवश्यकता नहीं है।

0

यदि पहचान आपका एकमात्र कोकर है और यदि आप xternall प्रक्रिया लॉन्च कर सकते हैं, तो आप HTML Tidy कंसोल टूल (~ 100K) के साथ xml फ़ाइल को संसाधित कर सकते हैं।

कोड है:

tidy --input-xml y --output-xhtml y --indent "1" $(FilePath) 

तो फिर तुम वेब पेज पर idented स्ट्रिंग प्रदर्शित कर सकते हैं एक बार आप विशेष वर्ण से छुटकारा पाने के।

रिकर्सिव फ़ंक्शन बनाना भी आसान होगा जो इस तरह के आउटपुट को बनाता है - बस रूट से शुरू होने वाले नोड्स को दोहराएं और बाल नोड के लिए अगले रिकर्सन चरण दर्ज करें, प्रत्येक नए रिकर्सन कॉल के पैरामीटर के रूप में पहचान को पारित करें।

0

एएसपी.नेट के लिए मुफ्त Actipro CodeHighlighter देखें - यह अच्छी तरह से एक्सएमएल और अन्य प्रारूपों को प्रदर्शित कर सकता है।

या क्या आप वास्तव में अपने एक्सएमएल को स्वरूपित करने में अधिक रुचि रखते हैं? फिर XmlTextWriter पर एक नज़र डालें - आप प्रारूप (इंडेंटिंग या नहीं) और इंडेंट स्तर जैसी चीजें निर्दिष्ट कर सकते हैं, और फिर अपना एक्सएमएल उदा। एक मेमोरीस्ट्रीम और प्रदर्शन के लिए एक स्ट्रिंग में इसे वापस पढ़ें।

मार्क

0

उपयोग एक XmlWriterSettings की स्थापना के साथ XmlTextWriter ताकि खरोज सक्षम है। यदि आप परिणामी स्ट्रिंग को स्क्रीन पर लिखना चाहते हैं तो आप स्ट्रिंगवाइटर को "अस्थायी स्टोरेज" के रूप में उपयोग कर सकते हैं।

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