如何使用MSXML& amp;添加具有重复名称的元素? C ++?

时间:2009-10-28 22:28:07

标签: c++ msxml msxml4

我正在编写一些代码来使用MSXML4&更新XML DOM。 C ++。我需要一个将子元素附加到父元素的方法。我在下面写的代码一直有效,直到孩子的头衔与父母下的另一个孩子的头衔相匹配。我不能改变孩子的头衔所以我需要找到一种方法将他们附加到父母身上。

任何人都可以提供一些指导吗?

// this call creates '<parent><child/></parent>'
AppendChild("/root/parent", "child");

// this call attempts to create '<parent><child/><child/></parent>' but the DOM remains     unchanged ('<parent><child/></parent>')
AppendChild("/root/parent", "child");


void AppendChild(const std::string kPathOfParent, const std::string kNameOfChild)
{
    MSXML2::IXMLDOMNodePtr pElement = m_pXmlDoc->createNode(NODE_ELEMENT, kNameOfChild.c_str(), m_xmlns.c_str());

    MSXML2::IXMLDOMNodePtr pParent = m_pXmlDoc->selectSingleNode(kPathOfParent.c_str());
    MSXML2::IXMLDOMNodePtr pNewChild = pParent->appendChild(pElement);
}

1 个答案:

答案 0 :(得分:1)

我不确定问题究竟是什么,但在某些地方我的二进制文件是不合时宜的。我通过'Clean Solution'重建整个项目,而不仅仅是'Build Solution'选项。现在使用上面的代码创建了两个孩子。我不清楚为什么我能够通过调试器进入代码,但是直到我清理了解决方案之后才开始创建第二个子代。

杰夫&amp;雷米,谢谢你的评论。