2012-04-01 4 views
3

델파이에서 EInvalidPointer 오류가 발생하는 노드 만로드하려고합니다.델파이 : XML 노드가 EInvalidPointer에 액세스하려고 시도합니다.

<RYCFile> 
    <GeneralInfo> 
     <SystemName/> 
     <NSpecies>1</NSpecies> 
     <NMaxCriterias>2</NMaxCriterias> 
    <MaxRating>1</MaxRating> 
     <SystemType>0</SystemType> 
     <EvolutivePointCost>1</EvolutivePointCost> 
    </GeneralInfo> 
    <Race Index="1"> 
     <RaceName>Race #1</RaceName> 
     <NumCriterias>2</NumCriterias> 
     <Criteria Index="1"> 
      <Name>Criteria #1</Name> 
       <NSubCriterias>0</NSubCriterias> 
       <Limiter>0</Limiter> 
      </Criteria> 
      <Criteria Index="2"> 
       <Name>Criteria #2</Name> 
       <NSubCriterias>0</NSubCriterias> 
       <Limiter>0</Limiter> 
      </Criteria> 
     </Race> 
</RYCFile> 

나는 심지어 DocumentElement를 읽을 수 없습니다 :

내 "XML은"이 길을 간다.

나는 어디에서나 인터넷 검색을했지만 재치가있다. 내가 견뎌내고있는 것에 원격으로 적응 한 솔루션을 찾지 못하는 것 같습니다. "읽기"하는 데 사용

코드 :

FormSkeletonMaker.XMLDocumentFile.LoadFromFile(FileName); 
FormSkeletonMaker.XMLDocumentFile.Active := True; 
iNode := FormSkeletonMaker.XMLDocumentFile.ChildNodes.FindNode('GenInfo'); 

지금 당장이 길을 간다. 이 문서를로드하는 기능을 간신히 테스트하고 있습니다 (같은 프로그램에서 작성된 것입니다).

+0

원래 게시물을 업데이트했습니다. 훨씬 더 읽기 쉽습니다. – AdelC

+0

서식 코드에 ">"대신 네 칸을 사용하십시오. – dldnh

답변

4

DocumentElement 속성이 실패하면 FormSkeletonMaker 또는 XMLDocumentFile 개체 포인터가 유효하지 않습니다.

+0

양식 뒤에있는 양식이 될 수 없습니다. 필자는 XMLDocumentFile을 내 프로그램에서 구성 요소로 사용하기로 결정했습니다 (동적로드 또는 기타 사항 없음). 아무거나 나 시도해보십시오 Showmessage (XMLDocumentFile.XML.Text); 그리고 나는 전체 XML을 얻는다. – AdelC

+0

네 말이 맞아. 어딘가에 XMLDocumentFile이 길을 잃었습니다. 정적 인 동안 동적 인 것처럼 취급했습니다. 나쁜, 나쁜 오류. 이전에 시도한 코드는 동적 인 내용을 사용하고 있었고 xml 문서를 만들어야했기 때문에 작동하지 않았습니다. – AdelC

+0

'Owner'가 지정되지 않은 상태에서 동적으로 TXMLDocument를 생성하면 참조 카운팅 된 인터페이스로 사용됩니다 (자세한 내용은 문서 참조). 따라서주의해야합니다. 대신'IXMLDocument' 인터페이스를 리턴하는'NewXMLDocument()'와'LoadXML ...()'함수를 사용하는 것이 더 좋습니다. –

관련 문제