1

次のようなXMLファイルがあります。

<?xml version="1.0" encoding="UTF-16"?>
<Table>
   <Dataset>
      <Year>Year1</Year>
      <Month>Month1</Month>
      <Day>Day1</Day>
   </Dataset>
   <Dataset>
      <Year>Year2</Year>
      <Month>Month2</Month>
      <Day>Day1</Day>
   </Dataset>
</Table>


そして、このファイルをC++で読みたいと思います。私のコードは次のようになります:

XMLElement* xeTable = xeExport->FirstChildElement("Table");
     XMLElement* xeDataset = xeTable->FirstChildElement("Dataset");
         XMLElement* xeYear = xeDataset->FirstChildElement("Year");
         XMLElement* xeMonth = xeDataset->FirstChildElement("Month");
         XMLElement* xeDay = xeDataset->FirstChildElement("Day");

             XMLText* xnYear  = xeYear->FirstChild()->ToText();
             const char* cYear = xnYear->Value();

             XMLText* xnMonth  = xeMonth->FirstChild()->ToText();
             const char* cMonth = xnMonth->Value();

             XMLText* xnDay  = xeDay->FirstChild()->ToText();
             const char* cDay = xnDay->Value(); 

最初のデータセットの年、月、日付を読み取ります。次のデータセットのデータを読み取るために知っておくべきことは何ですか?FirstChildElement();を使用して2番目のデータセットを再度読み取ることができるように、読み取った後に最初のデータセットを削除する方が優れていました。しかし、私はそれを取得できませんでした。

誰か助けてもらえますか?

4

1 に答える 1

1
xeDataset = xeDataset->NextSiblingElement("Dataset")

詳しく説明します:

XMLElement* xeTable = xeExport->FirstChildElement("Table");

for(XMLElement* xeDataset = xeTable->FirstChildElement("Dataset"); xeDataset; xeDataset = xeDataset->NextSiblingElement("Dataset"))
{
         XMLElement* xeYear = xeDataset->FirstChildElement("Year");
         XMLElement* xeMonth = xeDataset->FirstChildElement("Month");
         XMLElement* xeDay = xeDataset->FirstChildElement("Day");

         XMLText* xnYear  = xeYear->FirstChild()->ToText();
         const char* cYear = xnYear->Value();

         XMLText* xnMonth  = xeMonth->FirstChild()->ToText();
         const char* cMonth = xnMonth->Value();

         XMLText* xnDay  = xeDay->FirstChild()->ToText();
         const char* cDay = xnDay->Value(); 
}
于 2012-06-06T09:21:29.233 に答える