2009-12-17 2 views
2

XML 구문 분석을위한 objective-C 라이브러리를 알고 싶습니다. 나는 그것이 매우 일반적인 필요하다고 생각하지만, 나는이 작업을 처리하기 위해 제한된 자원을 발견XML 구문 분석을위한 Objective-C 라이브러리

목표 - C 언어에서 XML로 작동하도록 최선의 해결책은 무엇인가 ? 제발 조언.

제품에 사용 된 솔루션은 무엇입니까?

+0

NSXMLParser를 사용하는 데 문제가 있습니까? 정말 DOM이 아니라 SAX (파싱)를 원하십니까? – martinr

+0

예, SAX는 DOM이 아닙니다. NSXML Parser에서 가지고있는 문제는 사용하기가 쉽지 않다는 것입니다. 복잡한 xml 구조 내에서 이동하려면 엉망입니다. 상황을 가장 잘 해결한다고 생각하는 도구를 제안하십시오. –

답변

2

NSXMLParser는 스트림 지향 클래스입니다. 당신이 그것을 설정하고 뭔가를 감지하면 델리게이트 콜백을 얻을. 보통이 작업은 원하는 작업이 아니지만 훨씬 빠르고 메모리가 적을 수 있습니다.

TouchXML은 libxml을 사용하여 XML 자체를 구문 분석하고 전체 XML 구조에 대한 객체 트리를 만듭니다. 이를 통해 수동 탐색 방법 또는 기본 XPath (보다 정교한 XPath 지원이 계획되어 있음)를 사용하여 XML 트리의 내용에 쉽게 액세스 할 수 있습니다.

+0

안녕하세요. Steve, touchxml 및 libxml2를 배우기위한이 두 가지 리소스를 알고 있습니다. 우리에게 더 많은 것을 나누고 싶습니까? TouchXML 자습서 : http://dblog.com.au/general/iphone-sdk-tutorial-building-an-advanced-rss-reader-using-touchxml-part-1/ libxml2 자습서 : http : // cocoawithlove .com/2008/10/using-libxml2-for-parsing-and-xpath.html –

+0

libxml2를 직접 사용하는 것에 대해 잘 모르겠습니다. TouchXML은 대부분의 경우 NSXML * 클래스의 대체 구현으로 설계되었으므로 TouchXML에서 필요한 클래스의 Mac 관련 설명서 (예 : CXMLDocument-> NSXMLDocument, CXMLElement-> NSXMLElement, CXMLNode-> NSXMLNode , 등). 일반적으로 필요한 XML로 CXMLDocument 개체를 만들어야합니다. 그런 다음 수동 탐색 (childAtIndex 사용)을 사용하거나 XPath 및 - [CXMLNode nodesForXPath : error :]를 사용하여 루트 요소를 쿼리 할 수 ​​있습니다. 도움이 되길 바랍니다! –

0

그것은 좁은 목적을 제공하지만, 당신의 목표는 단 정치 못한 HTML을 구문 분석하는 경우, 당신은 내가 TagScraper라고 시작했다 정적 라이브러리를 시도 할 수 있습니다. 그것은 많은/대부분의 XML/HTML 엔터티를 올바르게 처리하지는 않지만 쉽게 패치 할 수 있습니다. URL : http://github.com/searls/TagScraper

이 값은 당신을 위해 조립 /를 청소 장치/쿼리를 숨 깁니다 간단한 XPath는 메커니즘을 제공하는 것입니다, 다음은 Tag.h 노드의 트리와 같은 데이터 구조의 속성 & 구문 분석 된 요소를 제공합니다.