2013-03-29 2 views
0

У меня есть строка, которая содержит xml responce, (asmx web service) Я разбираю xml через APXML lib. , когда я получаю корневой элемент, который дает мне тег тела, я не хочу тега тела, я хочу получить свои фактические данные, которые находятся в теге Root и чем тег для детей. , пожалуйста, скажите мне, как получить данные от этого .. спасибо .. мой XML является Как разобрать xml в iPhone,

<?xml version="1.0" encoding="UTF-8" ?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
<soap:Body> 
<loginFunctionResponse xmlns="http://tempuri.org/"> 
    <loginFunctionResult> 
    <Root xmlns=""> 
    <child> 
    <id>52</id> 
    <name>mohsin</name> 
    </child> 
    </Root> 
</loginFunctionResult> 
</loginFunctionResponse> 
</soap:Body> 
</soap:Envelope> 

и мой код ..

NSString *resultString=[[NSString alloc] initWithBytes:[resultData bytes] length:resultData.length encoding:NSUTF8StringEncoding]; 
NSLog(@"result string: %@",resultString); 

APDocument *doc = [APDocument documentWithXMLString:resultString]; 

APElement *rootElement = [doc rootElement]; 
NSArray *childElement = [rootElement childElements]; 

for (APElement *chile in childElement) { 


    NSLog(@"chid name %@",chile.name); 
    NSLog(@"chile value %@",chile.value); 
} 

, которые дают мне результат это ..

chid name soap:Body 
chile value (null) 
+1

Этот элемент XML не имеет значения, он просто имеет другого ребенка. – borrrden

+0

Как получить дочерний элемент тега? thank –

+2

Вам нужно, чтобы оно было ложкой? Посмотрите, как вы получили дочерние элементы из корневого элемента и применяете эту логику. – borrrden

ответ

2

childElements не является рекурсивным и возвращает только прямые потомки корневого элемента.

Таким образом, в этом случае единственным дочерним элементом является тег <loginFunctionResponse xmlns="http://tempuri.org/">, значение которого равно null, так как он не имеет содержимого, а только одного дочернего элемента.

Если вы хотите проанализировать все дерево, вы должны рекурсивно вызвать childElements на каждого ребенка, пока не дойдете до листьев (элементы без детей).

+0

i am beginner in ios, если вы дадите мне ссылку на любой пример, как разбирать целые деревья. спасибо –

+0

Это ничего особенного в iOS. Это общее программирование. –

Смежные вопросы