2010-05-28 23 views
5

Tôi mới ở đây, tôi không biết làm thế nào để sử dụng này ... đây là mã của tôi:một cái gì đó sai trong chương trình của tôi bằng cách sử dụng GData xmlsupport

NSString *[email protected]"url"; 
NSURL *urlParse=[NSURL URLWithString:strParse]; 
NSString *content=[[NSString alloc] initWithContentsOfURL:urlParse]; 
NSError *error; 
GDataXMLDocument *document=[[GDataXMLDocument alloc] initWithXMLString:content options:0 error:&error]; 

-------- -------------- xml -----

<?xml version="1.0" encoding="UTF-8"?> 
<root> 
<head> 
<version>20100514103110</version> 
</head> 
<channels> 
<channel> 
<id>1</id> 
<name> 
<![CDATA[]]> 
</name> 
<uuid> 
<![CDATA[21001]]> 
</uuid> 
<site_url> 
<![CDATA[http://]]> 
</site_url> 
<pics> 
<url> 
<![CDATA[/21001/cms_images/channel/2010-01/21/channel_51224251664216081527429.png]]> 
</url> 
<url> 
<![CDATA[/21001/cms_images/channel/2010-01/21/channel_82864703356323359638124.png]]> 
</url> 
<url> 
<![CDATA[/21001/cms_images/channel/2008-07/04/channel_67535050807177704592393.swf]]> 
</url> 
<url> 
<![CDATA[]]> 
</url> 
<url> 
<![CDATA[]]> 
</url> 
</pics> 
<linkurls> 
<url> 
<![CDATA[]]> 
</url> 
<url> 
<![CDATA[]]> 
</url> 
<url> 
<![CDATA[]]> 
</url> 
</linkurls> 
<description> 
<![CDATA[]]> 
</description> 
<provider> 
<![CDATA[]]> 
</provider> 
<attr>3</attr> 
<props> 
<prop1> 
<![CDATA[21001/movie_shell.swf]]> 
</prop1> 
<prop2> 
<![CDATA[]]> 
</prop2> 
<prop3> 
<![CDATA[]]> 
</prop3> 
<prop4> 
<![CDATA[]]> 
</prop4> 
<prop5> 
<![CDATA[]]> 
</prop5> 
</props> 
</channel> 
</channels> 
</root> 

---------- lỗi bên dưới ----------- ----

Ld build/Debug-iphonesimulator/newParser.app/newParser normal i386 
    cd /Users/apple/Desktop/newParser 
    setenv MACOSX_DEPLOYMENT_TARGET 10.5 
    setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
    /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.sdk -L/Users/apple/Desktop/newParser/build/Debug-iphonesimulator -F/Users/apple/Desktop/newParser/build/Debug-iphonesimulator -filelist /Users/apple/Desktop/newParser/build/newParser.build/Debug-iphonesimulator/newParser.build/Objects-normal/i386/newParser.LinkFileList -mmacosx-version-min=10.5 -lxml2 -framework Foundation -framework UIKit -framework CoreGraphics -o /Users/apple/Desktop/newParser/build/Debug-iphonesimulator/newParser.app/newParser 

    Undefined symbols: 
     "_kGDataXMLXPathDefaultNamespacePrefix", referenced from: 
      _kGDataXMLXPathDefaultNamespacePrefix$non_lazy_ptr in GDataXMLNode.o 
     (maybe you meant: _kGDataXMLXPathDefaultNamespacePrefix$non_lazy_ptr) 
    ld: symbol(s) not found 
    collect2: ld returned 1 exit status 
+0

Đăng mã phân tích cú pháp XML mà bạn đang sử dụng và XML đang được sử dụng. – Anurag

+0

help ~~~~~~~~~~~~~~~~~ – ben

+1

Để bắt đầu, XML bạn đã đăng không hợp lệ. Kiểm tra tại đây - http://validator.w3.org/#validate_by_input – Anurag

Trả lời

11

Xóa #import "GDataXMLNode.h" khỏi phần đầu được biên dịch sẵn (và từ tệp .h bao gồm thứ ere) và chỉ thêm nó vào các tệp triển khai khi cần.

+0

đó là nó! Cảm ơn bạn ~ – ben

+1

Điều này vừa cứu mạng tôi. Làm thế nào trên trái đất đến bạn biết rằng bạn không phải nhập khẩu GDataXMLNode.h trong bạn pch ?? Dù sao cũng cảm ơn!! – Toastor

+0

Tôi có cùng một vấn đề, nhưng không nhận được bất kỳ thành công nào theo cách này. Xin vui lòng cho tôi một số hướng dẫn. – Raj

8

cách khác, bạn chỉ có thể xác định biểu tượng. thay đổi:

_EXTERN const char* kGDataXMLXPathDefaultNamespacePrefix _INITIALIZE_AS("_def_ns"); 

một cái gì đó như:

#define kGDataXMLXPathDefaultNamespacePrefix ("_def_ns"); 

Họ đang sử dụng một chút tiền xử lý thủ đoạn gian trá trong báo cáo ban đầu, nhưng như xa như tôi có thể thấy, điều này gây ra không có vấn đề và sẽ cho phép bạn để nhập GDataXMLNode.h vào tệp .pch, rất tiện dụng nếu bạn thường xuyên sử dụng nó - như tôi!

Tất nhiên, hãy đảm bảo bạn kiểm tra tác phẩm này ok cho bạn quá

+0

Cảm ơn, a .h trong a .h trong a .h trong a .h trong .pch đã tham chiếu GDataXMLNode, đây là giải pháp tốt hơn so với việc tái cấu trúc mọi thứ. – marimba

+0

cảm ơn, itsthejb. nó hoạt động. –

Các vấn đề liên quan