PC의 VS2012에서 rapidXML 및 C++을 사용하고 있습니다. 이미 XML 파일을 구문 분석했지만 속성 값을 개별적으로 인쇄하려고합니다. 일반적으로 아래 코드를 사용하여이 작업을 수행 할 수 있습니다. 그러나이 f}은 노드 이름 W 속성 이름을 알아야합니다. 동일한 이름을 가진 노드가 여러 개 있고 이름이 같은 여러 속성이 있기 때문에 문제가됩니다. 내 질문은 이것입니다, 노드 이름도 속성 이름도 고유하지 않을 때 단일 속성 값을 얻으려면 어떻게해야합니까?RapidXML 이전 속성 값을 사용하여 개별 속성 값에 액세스 하시겠습니까?
나는 고유 한 노드 이름을 가지고 및 속성 때 내가 사용하는 코드 명 :
xml_node<> *node0 = doc.first_node("NodeName"); //define the individual node you want to access
xml_attribute<> *attr = node0->first_attribute("price"); //define the individual attribute that you want to access
cout << "Node NodeName has attribute " << attr->name() << " ";
cout << "with value " << attr->value() << "\n";
내 XML 테스트 파일이 특정 예를 들어
<catalog>
<book>
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<price>44.95</price>
</book>
<book>
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<price>5.95</price>
</book>
</catalog>
, 내가의 가치를 얻을 수있는 방법 두 번째 책의 가격 속성? 제목 속성 값 "Midnight Rain"을 입력하고 어떻게해서 그것을 사용하여 다음 값을 얻을 수 있습니까?
'price'는 속성이 아니며 노드입니다. XML 속성은 다음과 같습니다.'' –
Roddy