2010-07-08 8 views
1

를 사용하여 이름에 콜론 XML 요소를 가져올 수 없습니다. 하지만 두 번째 줄은 작동하지 않습니다. 나는 그것이 네임 스페이스와 관련이 있다고 가정하지만, 나는 이것에 대해 전혀 새로운 것이므로 모든 지침을 고맙게 생각할 것이다. 고맙습니다!나는 다음과 같은 코드가 TouchXML


elementsForLocalName:URI:을 사용하면 요소를 올바르게 읽을 수 있습니다. 이제 문제는 TouchXML 라이브러리를 사용하기 때문에 해당 메소드가 CXMLElement 구조로 매핑 된 것처럼 보이지 않는다는 것입니다 (here 참조).

이제 질문은 : CXMLElement을 어떻게 NSXMLElement으로 변환하여 해당 방법을 사용할 수 있습니까?

+0

디버거에서 node의 내용을 보았습니까? 말을하면 효과가 없을 것입니다. 평균 지속 시간이 0이되거나 예외가 발생합니까? – falconcreek

답변

2

"itunes"는 네임 스페이스 식별자입니다. 그것은 실제로 자체적으로 아무런 의미가 없으며 단지 URI를 문제의 요소와 연결합니다. http://www.itunes.com/dtds/podcast-1.0.dtd 네임 스페이스에있는 iTunes RSS 확장을 사용하고있는 것 같습니다.

[node elementsForLocalName: @"duration" URI: @"http://www.itunes.com/dtds/podcast-1.0.dtd"] 

을 답 들어 두 번째로 : 대신 elementsForLocalName를 사용하려면 :

그래서, 네임 스페이스 요소에 대해, 나는 (P 내가 목표 - C 또는 NSXML에 익숙하지 않은거야) 생각 질문은 아래의 의견을 참조하십시오.

+0

감사합니다. Porges, 나는 그것이 정확하다고 생각합니다. 하지만 이제는 또 다른 문제가 있습니다. 위의 편집을 참조하십시오. –

+0

XML 문서에서 사용 된 실제 접두어를 얻을 수 있다면 (xmlns : ____ = "http://www.itunes.com/dtds/podcast-1.0.dtd"가 무엇이든간에) 'elementsForName : @ "____ : duration"'을 사용할 수 있습니다. – porges

+0

그것은 작동하지 않습니다 - _____은 "itunes"입니다. 다른 라이브러리로 전환하거나 iTunes에서 XML 피드 용으로 다시 포맷 된 프록시를 만들 필요가있는 것처럼 보입니다. 도와 주셔서 고맙습니다. –

관련 문제