मेरे पास एक्सएचटीएमएल फाइलों के बड़े बैच हैं जिन्हें मैन्युअल रूप से अपडेट किया गया है। अद्यतनों के समीक्षा चरण के दौरान मैं प्रोग्राम की अच्छी तरह से गठबंधन की जांच करना चाहता हूं। मैं वर्तमान में XmlReader का उपयोग कर रहा हूं, लेकिन औसत CPU पर आवश्यक समय मुझे अपेक्षा से अधिक लंबा है।सी # में एक्सएमएल फाइलों की अच्छी तरह से गठबंधन की जांच करने का सबसे तेज़ तरीका क्या है?
एक्सएचटीएमएल फाइलें 4 केबी से 40 केबी तक आकार में हैं और सत्यापन में प्रति सेकंड कई सेकंड लगते हैं। जांच करना जरूरी है, लेकिन मैं जितना संभव हो सके छोटा समय रखना चाहता हूं क्योंकि चेक को तब किया जाता है जब फाइलें अगले प्रक्रिया चरण में पढ़ी जा रही हैं।
क्या एक साधारण एक्सएमएल अच्छी तरह से गठबंधन जांच करने का कोई तेज़ तरीका है? शायद बाहरी एक्सएमएल पुस्तकालयों का उपयोग कर?
मैं पुष्टि कर सकता है कि मान्य "नियमित" XML आधारित सामग्री बिजली की तेजी XmlReader का उपयोग कर, और के रूप में सुझाव समस्या तथ्य यह है कि एक्सएचटीएमएल DTD हर बार एक फ़ाइल मान्य है पढ़ने के लिए है करने के लिए संबंधित प्रतीत होती है है।
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
ध्यान दें कि DTD के अलावा, इसी .ent फ़ाइलें (एक्सएचटीएमएल-lat1.ent, एक्सएचटीएमएल-symbol.ent, एक्सएचटीएमएल-special.ent) भी डाउनलोड कर रहे हैं। (; तुरंत सत्यापन त्रुटियों जब हम DTD उपेक्षा का परिचय देंगे जैसे, एक & nbsp)
DTD अनदेखी के बाद से पूरी तरह से वास्तव में एक्सएचटीएमएल के लिए एक विकल्प के रूप में अच्छे प्रकार से निर्मित बारीकी से अनुमति के लिए HTML संस्थाओं से जुड़ा हुआ है नहीं है।
समस्या स्थानीय (एम्बेडेड) दोनों DTD और इकाई फ़ाइलों की प्रतियों के साथ के रूप में सुझाव एक कस्टम XmlResolver का उपयोग कर, संयोजन में द्वारा हल किया गया था।
मैं यहाँ समाधान पोस्ट एक बार मैं कोड
मैं एक ऐसी ही समस्या आ रही है। क्या आप इस पर अपना कोड समाधान पोस्ट करना चाहते हैं? – STLDeveloper
@STLDeveloper मैंने निम्नलिखित कोड (VB.NET) में सुझाव लागू किया: [ValidateXMLClass.vb] (https://visualqa.codeplex.com/SourceControl/latest#visualQA/ValidateXMLClass.vb)। आवश्यक .dtd, .ent, और .mod फ़ाइलें (स्थानीय रूप से) स्पीडअप सत्यापन के लिए एम्बेडेड संसाधनों के रूप में शामिल हैं। 'मंद validateFile न्यू ValidateXMLClass validateFile.fileIn = tgtFile रूप तो नहीं validateFile.wellFormed तो ...' के बाद इस तरह के एक लंबे समय के अपने मूल प्रश्न से पारित कर दिया है उपलब्ध कोड बनाने के लिए – barry
धन्यवाद: इस प्रकार कोड कहा जाता है। – STLDeveloper