2011-08-18 6 views
1

지금은 사용자가 요청한 파일을 간단히 다시 작성하여 데이터를 저장합니다. 내 XML은 구조화하는 방법은 다음과 같이이다 :TinyXML로 문서 수정

Skeleons root 
    Skeleton with string name attribute 
     bone with attributes 
     bone with attributes 
     bone with attributes 
     bone with attributes 
    end Skeleton 
    Skeleton with string name attribute 
     bone with attributes 
     bone with attributes 
     bone with attributes 
     bone with attributes 
    end Skeleton 
    .... 
    end Skeletons root 

내가 원하는 이름의 골격이 존재하는지 통해 반복하고 않는 경우 내가 완전히 다시 작성합니다. 그렇지 않은 경우 루트 요소의 맨 아래에 추가하고 싶습니다.

누구든지이 예제가 있습니까?

감사

+0

두 경우 모두 "뼈"를 추가 하시겠습니까? 아니면 기존 뼈를 수정하고 싶을 수도 있습니까? – MSalters

+0

@ MSalters Nope 기존의 Bone을 수정하고 싶지 않다. 만약 skeleton이 존재한다면 그것을 덮어 쓴다. 그렇지 않으면 root의 끝에 새로운 것을 만든다. – jmasterx

답변

1

는 기본적으로,이 단계를 분할의 문제이다.

먼저 TiXmlElement *을 정의하고 0으로 설정하십시오. Skeletons의 모든 하위 항목을 반복합니다. 올바른 Skeleton을 찾으면 TiXmlElement *을 가리 키십시오.

둘째, 발견하지 못한 경우 (TiXmlElement * 여전히 0), 새 스켈레톤을 작성하고 TiXmlElement *을 가리 키십시오.

마지막으로 TiXmlElement * 아래에 새 본을 만듭니다.

+0

또한 오래된 자식 뼈의 요소를 지울 필요가 있습니다. 어떤 방법으로이 작업을 수행 할 수 있습니까? – jmasterx

+0

'TiXmlNode :: RemoveChild()'에 문제가 있습니까? – MSalters