저는 C++과 Xerces-c를 사용하여 XML 파서를 작성해 왔지만, 알아낼 수없는 문제가 발생했습니다. 내가 노력하고 내가이C++ Xerces-c - 노드가 자리 표시 자인지 확인하는 방법
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Config>
<Person>
<Title>Mr.</Title>
<Forename>Stephen</Forename>
<Surname>Cassidy</Surname>
<Job>
<Title>Position1</Title>
<Position>Worker</Position>
<Salary>£6.40</Salary>
</Job>
<Job>
<Title>NewJob</Title>
<Position>PositionWorker1</Position>
<Position>AnotherPosition</Position>
<Salary>£12,000</Salary>
</Job>
</Person>
같은 XML 파일이)
를 문제, 나는 주위에 일을 얻을 수 있지만 :) 주위 내 방식 "해킹"싶지 않아 해야 할 일은 노드가 다른 자식 노드의 "자리 표시 자"일 뿐인지를 알아내는 것입니다. <Person>
노드 또는 <Job>
노드처럼 처리하고 시도하지 말고 자식 노드를 확인하십시오.
이유는 노드 이름 (예 : Title)과 값 (예 : NewJob)뿐만 아니라 하위 항목 목록을 저장하는 클래스 내에 노드 값을 저장하므로 Job은 노드 항목이됩니다 , Title, Position 및 Salary는 모두 Job의 "하위"항목이됩니다. 그러나 나는 Job이 이미 Position에 대한 엔트리를 가지고 있는지 확인하고, 새로운 엔트리를 만들고 그것도 Job을 추가하는 대신에, 이미 존재하는 Position 엔트리에 Position의 값을 추가하기를 원한다. 누구에게나 감각 :
도움이 될만한 사람은 없을 것입니다. 코드 작성자 나 다른 사람에게도 몇 가지 힌트 나 포인터가 필요합니다. :)!
왜 자신의 클래스에 노드를 저장합니까? Xerces는이를위한 구조를 제공합니다. 일반적으로 각 하위 항목의 이름을 확인하고 '위치'인 경우 노드를 반환하는 방법에 대해 생각해 보겠습니다. – lupz