내가 이런 식으로 대략 간다 xml 파일이 세그 폴트 때문에,빈 요소의 원인 libxml은
doc = xmlDocPtr;
doc = xmlParseFile(file);
cur = xmlNodePtr;
cur = xmlDocGetRootElement(doc);
cur = cur->xmlChildrenNode;
while (cur != NULL){ // Loop through children of root
// Do my thing
cur = cur->next;
}
가 xmlNodePtr이되면 otherchildren하는이 내용이 없으면 다음 노드 (텍스트 노드)는 NULL
입니다. 이것은 내 문제를 일으키고, 내 루프를 망쳐 버리고, 어떻게 든 segfault를 유발합니다.
명백한 if 문 이외에 어떻게 수정합니까? otherchildren
아래에 더 많은 XML이 있으며 루프가 종료되면 가져올 수 없습니다. 당신의 .XML를 사용
아니요, 요점은 다른 아이들이 요소를 보유하기로되어 있지만 때로는 그렇지 않아서 프로그램이이를 처리해야한다는 것입니다. –
나는 당신이하는 일을 이해하지 못하고 그것이 합리적이라고 생각하지 않는다. XML은 목록이 아니라 트리입니다. 각 단계에서 "다음"포인터를 따라 가면 걸을 수 없습니다. 재귀를 사용하거나 백업 할 위치를 추적하여 트리를 백업 할 수 있어야합니다. –