मेरे पास एक वेब सेवा है जिसमें एक विधि है:
[WebMethod] public bool SyncUserData (स्ट्रिंग यूजर एक्सएमएल)
एक्सएमएल उपयोगकर्ता अभिलेखों की एक श्रृंखला है और मैं डेटा के माध्यम से पढ़ने और इसे संसाधित करने के लिए एक XmlReader का उपयोग करता हूं।
जब मैं वेब सेवा 2000 के रिकॉर्ड के साथ, यह 2000 रिकॉर्ड की प्रक्रिया करता है। जब मेरा ग्राहक उसी XML के साथ कॉल करता है, तो यह 1000 रिकॉर्ड प्रक्रिया करता है। यह हर दूसरे रिकॉर्ड की प्रक्रिया करता है।
क्या किसी को इस तरह की समस्या के साथ कोई अनुभव है? मेरा विचार यह है कि यह एक एन्कोडिंग मुद्दा है, लेकिन मैंने अपने परीक्षणों में एएससीआईआई, आईएसओ -8859-1 आदि के रूप में सेवा को डेटा भेजने की कोशिश की है और फिर से नहीं किया जा सकता है।
कोई भी मदद बहुत सराहना की गई है।
यह कॉलिंग कोड है:
जबकि (userXml.Read ()) {if (userXml.Name == NODE_NAME_FILE_NAME & amp; उपयोगकर्ता एक्सएमएल.NodeType == XmlNodeType.Element) {_importFilename = userXml.ReadString (); } अगर (userXml.Name == NODE_NAME_USER और amp; उपयोगकर्ता एक्समल। नोडप्रकार == XmlNodeType.Element) {ProcessUser (userXml); }}
और यह वही है जो प्रोसेसर उपयोगकर्ता teh xml रीडर के साथ करता है
प्राइवेट व्हाइड प्रोसेसयूसर (एक्सएमएलआरडर यूज़रएक्साइल) {_usersinfeed ++; XmlDocument उपयोगकर्ता = नया XmlDocument (); user.LoadXml (userXml.ReadOuterXml ()); ...
}
आप काटने का क्या पक्ष है ReadOuterXml
के प्रभाव - यह संभवतः XmlReader की वर्तमान स्थिति को बढ़ाता है - लेकिन फिर, अपने लूप में जबकि (userxml.Read ())
आप इसे फिर से अग्रिम करते हैं - लंघन इस प्रक्रिया में एक एक्सएमएल तत्व।
इसे सुलझाने के कई तरीके हैं - लेकिन सबसे आसान और साफ करने के लिए XmlReader
का उपयोग नहीं किया जाएगा। क्या यह एक विकल्प है?
एक्सएमएल पर कार्रवाई करने का एक आसान तरीका है लिनक् करने के लिए एक्सएमएल:
सार्वजनिक स्थिर शून्य मुख्य () {SyncUserData (@ "& lt; doc & gt; & lt; फ़ाइलनाम
कौन से आउटपुट:
उपयोगकर्ता: 1, फ़ाइल: परीक्षण & lt; उपयोगकर्ता & gt; कोई & lt; / उपयोगकर्ता & gt; उपयोगकर्ता: 2, फ़ाइल: परीक्षण & lt; उपयोगकर्ता & gt; कोई 2 & lt; / उपयोगकर्ता & gt; उपयोगकर्ता: 3, फ़ाइल: testA & lt; उपयोगकर्ता & gt; किसी अन्य & lt; / उपयोगकर्ता & gt; उपयोगकर्ता: 4, फ़ाइल: testA & lt; उपयोगकर्ता & gt; कोई अन्य 2 & lt; / उपयोगकर्ता & gt;
हालांकि, आप XML सीरियललाइजेशन का उपयोग करने में सक्षम हो सकते हैं - यह बहुत आसान तरीका है कि आप बिना किसी बॉयलरप्लेट के एक्सएमएल को पार्स / जनरेट कर सके, इसके साथ ही आपको बूट करने के लिए काम करने के लिए एक नेट नेटिव डाटास्ट्रैक्टर ! इसके बाद, आपको दस्तावेज़ संरचना को परिभाषित करने के लिए कक्षाओं के एक छोटे से सेट की आवश्यकता होती है, और फ्रेमवर्क आपके लिए XML से स्वचालित रूप से उदाहरण बना सकता है, बिना किसी मैन्युअल पार्सिंग कोड के। सभी XML वाक्यविन्यास उसके लिए उत्तरदायी नहीं हैं, हालांकि।
Comments
Post a Comment