C++ 如何从MSXML::IXmlDoElement中获取值数据

C++ 如何从MSXML::IXmlDoElement中获取值数据,c++,xml,msxml,C++,Xml,Msxml,我有一个xml字符串 <grandparent> <parent> <child>dave</child> <child>laurie</child> <child>gabrielle</child> </parent> </grandparrent> 他回来了 <parent> <child>

我有一个xml字符串

<grandparent>
   <parent>
       <child>dave</child>
       <child>laurie</child>
       <child>gabrielle</child>
   </parent>
</grandparrent>
他回来了

<parent>
   <child>dave</child>
   <child>laurie</child>
   <child>gabrielle</child>
</parent>
返回 达夫拉乌里加布里埃尔

如果我想获取,我应该使用什么函数?

<child>dave</child>
   <child>laurie</child>
   <child>gabrielle</child>
戴夫 劳里 加布里埃
有人知道关于这些函数的一些好文档吗?我所看到的一切都是一场恶梦

迭代子节点并手动生成字符串。

迭代子节点并手动生成字符串。

如果您使用的是MSXML,则应该是获取祖辈节点的子节点的情况

因此,如果
iXMLElm
是祖辈节点,并且它只有一个子节点,那么您可以使用

 iXMLElm->get_firstChild(&iXMLChildElm)
……然后

 iXMLChildElm->get_xml(&bStr)
…以获取三个子元素

如果在
祖父母
下有多个项目,则可以使用
选择SingleNode
来使用XPath来选择包含所需内部XML的节点


对于可用的接口和调用来说,这是非常合理的。

如果您使用的是MSXML,那么这应该是获取祖父母节点的子节点的情况

因此,如果
iXMLElm
是祖辈节点,并且它只有一个子节点,那么您可以使用

 iXMLElm->get_firstChild(&iXMLChildElm)
……然后

 iXMLChildElm->get_xml(&bStr)
…以获取三个子元素

如果在
祖父母
下有多个项目,则可以使用
选择SingleNode
来使用XPath来选择包含所需内部XML的节点


对于可用的接口和调用来说,这是非常合理的。

如果您使用的是IXmlDoElement,那么

HRESULT getAttribute(
    BSTR name,
    VARIANT *value);

是一种方法,其中“name”是属性名,“value”是输出参数,将包含字符串格式的属性值。

如果使用IXMLDOMELENT,则

HRESULT getAttribute(
    BSTR name,
    VARIANT *value);

是一种方法,其中“name”是属性名,“value”是输出参数,将以字符串格式包含属性值。

在某些情况下,这可能是一个非常糟糕的主意。在某些情况下,这可能是一个非常糟糕的主意。