1

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

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

// 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);
}
4

1 回答 1

1

我不确定到底是什么问题,但我的二进制文件在某个地方不合时宜。我通过“清洁解决方案”而不是“构建解决方案”选项重建了整个项目。现在两个孩子都是使用上面的代码创建的。我不清楚为什么我能够通过调试器进入代码,但是直到我清理了解决方案,第二个孩子才被创建。

杰夫和雷米,谢谢你的评论。

于 2009-10-29T03:31:37.823 回答