2008-12-11 99 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); 

是其中「名稱」是屬性名稱和「值」的方法是輸出參數將包含在字符串格式的屬性的值。