iOSがmysqlに接続できるように、Xcodeの配列にphpスクリプトからのxml出力を入力しようとしています。ただし、mysql に情報があるにもかかわらず、配列に空の値を取得し続けます。これは、属性セクションまたは xml の解析が間違っていることを意味しているに違いありませんが、実際に何が間違っているのかはわかりません (スターを付けても効果がないようです)。php または xcode からエラーが発生しません。何か案は?
編集:私は以下の提案に従いましたが、まだ空の値を取得していますが、それは私のPHPから来ていると信じています...
- (void)viewDidLoad
{
[super viewDidLoad];
char *cStr = "YES";
NSString *str3 = [NSString stringWithUTF8String:cStr];
NSString *urlString = [NSString stringWithFormat:@"(censored)", _login];
NSXMLParser *Parser = [[[NSXMLParser alloc] initWithContentsOfURL:[NSURL URLWithString:urlString]] autorelease];
[Parser setDelegate:self];
[Parser parse];
NSDictionary *itemAtIndex =(NSDictionary *)[oneam objectAtIndex:0];
oneam = [[NSMutableArray alloc] init];
if (([[itemAtIndex objectForKey:@"its"]isEqualToString:str3 ])) {
[switch1 setOn:YES animated:YES];
}
else {
[switch1 setOn:NO animated:YES];
}
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
if ( [elementName isEqualToString:@"location"]) {
[oneam addObject:[[NSDictionary alloc] initWithDictionary:attributeDict]];
NSLog(@"The array is %@", oneam);
}
}
そして、ここに私のphpがあります...
<?php
$login = "hello";
$dbh = new PDO('(censored)');
$sql = "SELECT oneam FROM login WHERE username = '$login'";
$q = $dbh->prepare( $sql );
$doc = new DOMDocument();
$r = $doc->createElement( "oneam" );
$doc->appendChild( $r );
foreach ( $q->fetchAll() as $row) {
$e = $doc->createElement( "location" );
$e->setAttribute( 'its', $row['oneam']);
$r->appendChild( $e );
}
print $doc->saveXML();
?>