아래 XML은 FIX 메시지를 나타냅니다. 이 메시지에는 ID 태그를 사용하여 번호가 매겨진 가변 개수의 필드가 있으며 각각 다른 속성을 포함합니다. 그래서이 XML을 구문 분석하고 추가 코딩 기능을 사용하여 필드 당 모든 속성 정보를 포함하는 C++ 메시지 객체를 출력합니다. BE- 것C++에서 FIX XML 데이터를 구문 분석하여 객체를 만드는 방법은 무엇입니까?
첫 번째 질문은 내가이 작업을 수행하는 데 사용할 수있는 부스트 라이브러리가? 두 번째 질문은 XML 파서가 제공 할 수있는 인터페이스와 객체를 작성하는 코드를 작성해야하는 인터페이스 사이의 인터페이스입니다. 예를 들어, 8 행의 XML에는 <delta/>
태그가 있으며 이것은 객체의 속성입니다. 따라서 필드 52 (8 행)의 경우 속성은 델타 하위 유형 객체가되지만 9 행의 경우 속성은 하위 유형 객체 복사입니다. 필드 ID가 키인 std::unordered_map
에 이러한 부속 유형을 저장하고 싶습니다.
다른 말로 표현하면 XML 파서가 내가 원하는 방식으로 객체를 작성하는 데 도움이되는 "최종 결과"는 무엇입니까?
방금 Boost.PropertyTree를 발견했습니다.이 점에 대해 어떻게 생각하십니까? http://akrzemi1.wordpress.com/2011/07/13/parsing-xml-with-boost/ – user997112
부스트 속성 트리를 사용했습니다. 나는 XML, JSON, .INI (그리고 아마도 다른 것들)를 지원하려고 시도하고 "최소한의 공통 분모"문제를 겪고 있지만 괜찮습니다. 그러나 ... –
귀하의 경우에는 대체 형식이 필요하지 않으므로 XML을 파싱 할 수있는 패키지보다는 "실제"XML 파서를 사용합니다. 특히 부스트 속성은 DOM과 비슷합니다. SAX처럼 데이터를 앱에 "푸싱"하는 대신 데이터를 가져와야하는 자체 내부 구조로 데이터를 읽습니다. (나에게 "푸시 (push)"접근법은 더 깨끗합니다.) –