XMLのタグの値を取得する方法

以下の方法を行えば、XMLのタグの値を取得できる。
(以下の例では「Tag1」というタグ名の値を取得している。)

CATIXMLDOMDocumentBuilder_var builder;
HRESULT rc = ::CreateCATIXMLDOMDocumentBuilder(builder);
if (SUCCEEDED(rc) && (builder != NULL_var))
{
  // XMLファイルの取得方法の設定
  CATIDOMDocument_var spDoc;
  CATListOfCATUnicodeString readOptions;
  readOptions.Append("CATDoValidation");
  CATListOfCATUnicodeString readOptionValues;
  readOptionValues.Append("false");

  // iPath はXMLファイルのフルパス
  rc = builder->Parse(iPath, spDoc, readOptions, readOptionValues);  if (SUCCEEDED(rc) && (spDoc != NULL_var))
  {
    // XMLファイル内の情報を取得
    CATIDOMNodeList_var spDOMNodeList = NULL_var;
    rc = spDoc->GetElementsByTagName("Tag1", spDOMNodeList);
    unsigned int nListCnt;
    rc = spDOMNodeList->GetLength(nListCnt);
    CATUnicodeString oNodeValue;

    // XMLファイル内を1行ずつ取得
    for (unsigned int i = 0; i < nListCnt; i++)
    {
      CATIDOMNode_var oItem = NULL_var;
      rc = spDOMNodeList->Item(i, oItem);

      // ※タグの値を取得するには、GetFirstChildを行う必要がある        CATIDOMNode_var oFirstChild = NULL_var;
      rc = oItem->GetFirstChild(oFirstChild);

      oNodeValue = "";
      rc = oFirstChild->GetNodeValue(oNodeValue);

      cout << "Tag1の値 --> " << oNodeValue.ConvertToChar() << endl;
    }
  }
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)