के बीच टेक्स्ट निकालने के लिए NSRegularExpression का उपयोग करके "बैजकाउंट" टैग के बीच मान "6" निकालने के लिए कैसे करें। सर्वर से प्रतिक्रिया निम्नलिखित है:NSRegularExpression दो एक्सएमएल टैग
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><badgeCount>6</badgeCount><rank>2</rank><screenName>myName</screenName>
निम्नलिखित कोड मैंने कोशिश की लेकिन सफलता प्राप्त नहीं की। आप नमूना कोड है कि बहुत सराहना की जाएगी प्रदान कर सकता है, तो
NSString *responseString = [[NSString alloc] initWithBytes:[responseDataForCrntUser bytes] length:responseDataForCrntUser.length encoding:NSUTF8StringEncoding];
NSError *error;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(?<=badgeCount>)(?:[^])*?(?=</badgeCount)" options:0 error:&error];
if (regex != nil) {
NSTextCheckingResult *firstMatch = [regex firstMatchInString:responseString options:0 range:NSMakeRange(0, [responseString length])];
NSLog(@"NOT NIL");
if (firstMatch) {
NSRange accessTokenRange = [firstMatch rangeAtIndex:1];
NSString *value = [urlString substringWithRange:accessTokenRange];
NSLog(@"Value: %@", value);
}
}
else
NSLog(@"Value of regex is nil");
: वास्तव में यह किसी और हिस्से और प्रिंट में चला जाता है "regex का मूल्य नहीं के बराबर है।"
नोट: मैं NSXMLParser का उपयोग नहीं करना चाहता हूं।
आप क्यों नहीं चाहते हैं xml पार्सर को xml पार्स करने के लिए? – Mat
और आपने अभी तक क्या प्रयास किया है? – Mat
कुछ मूल्यों को निकालने के लिए NSXMLParser की कोई ज़रूरत नहीं है ... मुझे आवश्यक नियमित अभिव्यक्ति मिली है ("<=badgeCount>) (?: [^]) *? (? = बैजकाउंट)" http: // gskinner.com/RegExr/ ऑनलाइन उपकरण लेकिन NSRegular अभिव्यक्ति में एक ही अभिव्यक्ति का उपयोग करने में असमर्थ ... – Prazi