मैं मैटलैब के एपीआई से बिल्कुल परिचित नहीं हूं, लेकिन मैं इंगित करता हूं कि पीछा द्वारा उल्लिखित डीओएम विधि का उपयोग करने में सबसे अधिक समय/स्मृति होगी यदि आप केवल उस XML स्ट्रीम से विशिष्ट मान चाहते हैं जो आप वापस प्राप्त कर रहे हैं HTTP कनेक्शन।
जबकि एसटीएक्स आपको जावा में सबसे तेज़ पार्सिंग दृष्टिकोण देगा, एपीआई का उपयोग करके अनावश्यक हो सकता है खासकर अगर आप जावा से परिचित नहीं हैं। आप SJXP का उपयोग कर सकते हैं जो जावा में एसटीएक्स पार्सिंग का एक बेहद पतला अमूर्त है (अस्वीकरण: मैं लेखक हूं) जो आपको इच्छित तत्वों के पथ को परिभाषित करने की अनुमति देता है, फिर आप पार्सर को एक स्ट्रीम देते हैं (इस मामले में आपकी HTTP स्ट्रीम) और यह आपके लिए सभी मूल्यों को खींचता है।
// Create /root/state rule
IRule stateRule = new DefaultRule(Type.CHARACTER, "/root/state") {
@Override
public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
System.out.println("State is: " + text);
}
}
// Create /root/volume rule
IRule volRule = new DefaultRule(Type.CHARACTER, "/state/volume") {
@Override
public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
System.out.println("Volume is: " + text);
}
}
// Create the parser with the given rules
XMLParser parser = new XMLParser(stateRule, volRule);
आप कर सकते हैं:
उदाहरण के लिए, मान लीजिए कि आप उदाहरण एक्सएमएल आप पोस्ट से बाहर/जड़/राज्य और/जड़/मात्रा मूल्यों चाहता था, वास्तविक जावा कुछ इस तरह दिखेगा जाने कार्यक्रम पर कि आरंभीकरण के सभी बाद में कुछ बिंदु पर तो शुरू जब आप अपने HTTP कनेक्शन से धारा कार्रवाई कर रहे हैं, तो आप की तरह कुछ करना होगा:
parser.parser(httpConnection.getOutputStream());
या की तरह; तो आपके नियमों में परिभाषित आपके सभी हैंडलर कोड को पार्सर HTTP कनेक्शन से वर्णों की धारा के माध्यम से चलाया जाएगा।
जैसा कि मैंने बताया है कि मैं Matlab से परिचित नहीं हूं और इस कोड को "Matlab-i-fy" के उचित तरीकों से नहीं जानता, लेकिन ऐसा लगता है कि आप पहले उदाहरण से जावा एपीआई का उपयोग कर सकते हैं सीधे इस मामले में यह समाधान तेजी से होगा और यदि डीओएम दृष्टिकोण से महत्वपूर्ण है तो पार्सिंग के लिए काफी कम स्मृति का उपयोग करें।
स्रोत
2012-03-04 14:23:33
क्या आप विंडोज का उपयोग कर रहे हैं? यदि ऐसा है, तो मैं आपको एक .NET समाधान प्रदान कर सकता हूं। –