2009-12-07 3 views
1
const XMLDataNode *pointsNode = node->GetChildren().at(0); 
std::wistringstream pointsstrm(*pointsNode->GetInnerText()); 
pointsstrm >> loadedGame.points; 

이것은 내가 XML 파일에서 int을 끌어 loadedGame.points로 통과 작성한 코드 (AN int)입니다. 그러나 이것은 작동하지 않습니다. 그것은 컴파일하지만 올바른 가치를주지 않습니다. 왜 그런가요? XMLDataNodexmllite.dll을 조작하는 클래스입니다.wistringstream을 XML 파일에서 정수로 변환 하시겠습니까?

+0

로드 된 유형의 정보가 있습니다 .Game.points, stringstream에 입력하는 입력은 무엇입니까? XMLDataNode는 어떤 라이브러리에서 가져 왔습니까? –

+0

loadedGame.points는 정수입니다 (설명에 나열 됨). 그래도 더 많이 추가 할 것입니다. – Chris

+0

실제로 필요한 정보가 무엇인지 잘 모르겠습니다. strinstream에 입력 된 입력은 위의 그림과 같습니다 (* pointsNode-> GetInnerText())이고 loadedGame.points는 정수입니다. XMLDataNode는 xmllite를 사용하는 클래스입니다 – Chris

답변

0

몇 가지 야생 추측을위한 시간!

나는 *pointsNode->GetInnerText()에서 얻은 텍스트가 생각하는 바가 아님을 알려드립니다. 당신이 정말로 원하는 텍스트인지 확인 했습니까? 특히 공백을 포함 할 수 있습니까? 참조 할 스키마가없는 멋지게 형식화 된 (예 : 들여 쓰기, 줄 바꿈 등) XML 파일을 구문 분석하면 결국 공백을 포함하는 모든 종류의 텍스트 노드가 DOM 트리에 포함될 것임을 의미합니다.

+1

물론 std :: wistringstream (GNU libstdC++ 6)은 정수를 추출 할 때 공백을 무시하는 것처럼 보입니다. 여전히 유효한 관심사가 있습니다.'* pointsNode-> getInnerText()'에 의해 반환되는 것이 당신이 기대하는 것입니까? 디버그 인쇄 문은 여기에 아주 편리 할 수 ​​있습니다. – Managu

관련 문제