我解析一个xml文件,以获取两个节点"tagid"和"mac"的内容.如何将此内容存储在两个数组中,一个用于"tagid",另一个用于"mac"?
"解析器"有效.先感谢您
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
self.currentElement = elementName;
self.currentElement2 = elementName;
if ([self.currentElement isEqualToString:@"mac"]) {
self.currentTitle = [NSMutableString string];
}
if ([self.currentElement2 isEqualToString:@"tagid"]) {
self.currentTitle2 = [NSMutableString string];
}
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if ([self.currentElement isEqualToString:@"mac"]) {
NSLog(@"%@", self.currentTitle);
}
if ([self.currentElement2 isEqualToString:@"tagid"]) {
NSLog(@"%@", self.currentTitle2);
}
self.currentTitle = nil;
self.currentElement = nil;
self.currentTitle2 = nil;
self.currentElement2 = nil;
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
if …Run Code Online (Sandbox Code Playgroud) 我试图在单个UIWebView中连续打开多个URL,但它只打开最后一个URL(最后一个成员macArray).
- (IBAction)openURL:(id)sender {
macArray = [NSArray arrayWithObjects:@"XX:XX:XX:XX:XX:XX", @"XX:XX:XX:XX:XX:XX", nil];
NSString *part1URL = @"http://myurl?mac=";
NSString *part2URL = @"&dothis";
for (int i = 0; i < macArray.count; i++) {
NSLog(@"%@", macArray[i]);
NSString *mac = [macArray objectAtIndex:i];
NSString *beginURL = [part1URL stringByAppendingString:mac];
NSString *URL = [beginURL stringByAppendingString:part2URL];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:URL]];
[webView loadRequest:request];
}
}
Run Code Online (Sandbox Code Playgroud)
有谁有想法吗?提前谢谢你,祝你有个美好的一天/晚上.
我的XML看起来如此:
<sensor>
<data>26.7</data>
<data>54.53</data>
<log>false</log>
</sensor>
Run Code Online (Sandbox Code Playgroud)
要检索列表中的数据字段,我使用:
List<string> list = xml.Root.Descendants("sensor").Elements("data").Select(element => element.Value).ToList();
Run Code Online (Sandbox Code Playgroud)
它运作良好.
有时XML看起来像这样(log = true):
<sensor>
<data>26.7</data>
<data>54.53</data>
<log>true</log>
</sensor>
Run Code Online (Sandbox Code Playgroud)
我想忽略这些价值观.我怎样才能做到这一点?
我试过这个:
var lastUser = xml.Element("response").Descendants("sensor")
.First(u => u.Element("data") != null
&& u.Element("log").Value == "false");
Run Code Online (Sandbox Code Playgroud)
但我只能检索当然只有第一个值.