배열을 반복하는 동안 노드를 속성 트리에 어떻게 추가합니까?boost property_tree 루프에 노드 추가
이것은 아마도 간단한 일이지만 boost_property_tree로 작업하는 방법을 이해하지 못합니다.
속성 트리에 추가하고 xml로 출력하려는 값 배열이 있습니다. 노드를 하드 코딩하여 루트 노드에 직접 추가하면 작동하지만 루프 내부에서 수행하려고하면 xml이 유효하지 않으며 배열의 노드 하나만 포함되며 XML 노드가 종료되지 않습니다.
가변 길이의 데이터 배열로 노드를 하드 코딩 할 수 없습니다. 이와 같이하면 간단히 작동하지 않습니다. 왜 그런지 이해가 안되니?
ptree listnode;
std::vector<data> dataarray= ...
for(auto data : dataarray)
{
ptree node;
...
listnode.add_child("value", node)
}
...
내가 원하는 것은이 같은 것입니다 :
<list>
<value active="true">12</value>
<value active="true">44</value>
<value active="true">23</value>
</list>
하지만 결과 XML은 다음과 같습니다 : 그것은 단지 첫 번째 값 노드 후 중지
<list>
<value active="true">
. 예외 또는 아무것도 그래서 내 property_tree 또는 XML xml_parser :: write_xml XML을 만드는 데 실패합니다 가정합니다.
대부분 내가 boost :: property_tree를 사용하는 방법을 잘못 이해하고 있습니다. 하지만 정말로,리스트를 출력하는 것은 꽤 간단한 일일 것입니다.
는 당신이 실제로 (예를 들어,'put'을하지만)'add_child'를 사용하지 않을 수 있을까? – sehe