掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
MSXMLのノード名取得について (ID:70935)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ちょーてきとう。 テキストノードだけでもchildNodes->lengthが0でないくせに childNodes->item[i]がNULLになるのはわからない。 #include <vector> #import "msxml6.dll" rename_namespace("msxml") void AddNodeName(std::vector<_bstr_t>& nodeNameList, msxml::IXMLDOMElementPtr& node) { if (node == NULL) { return; } nodeNameList.push_back(node->nodeName); msxml::IXMLDOMNodeListPtr childNodes = node->childNodes; for (long i = 0L; i < childNodes->length; ++i) { msxml::IXMLDOMElementPtr childNode = childNodes->item[i]; AddNodeName(nodeNameList, childNode); } } HRESULT test() { HRESULT hr = S_OK; try { msxml::IXMLDOMDocumentPtr doc("MSXML.DOMDocument"); doc->validateOnParse = VARIANT_FALSE; doc->load(L"foo.xml"); msxml::IXMLDOMElementPtr root = doc->documentElement; std::vector<_bstr_t> nodeNameList; AddNodeName(nodeNameList, root); } catch (_com_error& e) { // エラー hr = e.Error(); } return hr; } int main() { HRESULT hr = ::CoInitialize(NULL); if (FAILED(hr)) { return 1; } hr = test(); ::CoUninitialize(); return 0; }
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.