2008-12-11 93 views
2

我有一个XML字符串我怎样才能得到的数值数据出MSXML :: IXMLDOMElement

<grandparent> 
    <parent> 
     <child>dave</child> 
     <child>laurie</child> 
     <child>gabrielle</child> 
    </parent> 
</grandparrent> 

我想要得到的是数据原始XML这是父里面。 我使用MSXML

iXMLElm->get_xml(&bStr); 

正在恢复

<parent> 
    <child>dave</child> 
    <child>laurie</child> 
    <child>gabrielle</child> 
</parent> 

iXMLElm->get_text(&bStr); 

回报 davelauriegabrielle

应怎样使用功能,如果我想获得?

<child>dave</child> 
    <child>laurie</child> 
    <child>gabrielle</child> 

是否有人知道这些功能的一些很好的文档?我见过的所有东西都是一个相连的噩梦。

回答

1

迭代子节点并手动构建字符串。

+0

有些情况下,这可能是一个非常糟糕的主意。 – Owl 2017-05-11 16:46:42

0

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

所以,如果iXMLElm是祖父母,它只有一个子节点,你可以使用...

iXMLElm->get_firstChild(&iXMLChildElm) 

...然后...

iXMLChildElm->get_xml(&bStr) 

..获取三个child元素。

如果在grandparent下有多个项目,则可以使用selectSingleNode代替使用XPath来选择具有所需内部XML的节点。

MSDN documentation是相当合理的接口和调用可用。

-1

如果使用IXMLDOMElement,然后

HRESULT getAttribute(
    BSTR name, 
    VARIANT *value); 

是其中“名称”是属性名称和“值”的方法是输出参数将包含在字符串格式的属性的值。