2013-04-01 185 views
0

如何使用MSXML2.DOMDocument獲取具有屬性的XML節點值?如何在節點具有屬性時使用MSXML2.DOMDocument獲取xml節點值?

嗨,我有一個代碼發送XML到支付處理器,並接收另一個XML作爲響應。我使用此代碼讀取響應XML:

Set xmlDoc = Server.CreateObject("MSXML2.DOMDocument") 
xmlDoc.LoadXml(xmlhttp.ResponseXml.xml) 

和XML是這樣的:

<Resposta> 
    <ID>201304010122077460000003642016</ID> 
    <Status>Falha</Status> 
    <Erro Codigo="316">O cartão de crédito informado está expirado.</Erro> 
</Resposta> 

所以我嘗試分析它,得到節點的值:

transaction_id = xmlDoc.SelectSingleNode("/Resposta/ID").Text 
transaction_st = xmlDoc.SelectSingleNode("/Resposta/Status").Text 
transaction_er = xmlDoc.SelectSingleNode("/Resposta/Erro").Text 

它適用於節點「ID」和「狀態」,但不適用於「Erro」。我無法得到它的值=「Ocartão...」。
這是爲什麼,我怎樣才能得到它的價值?如果我想知道它的價值,那它又是屬性的價值呢?謝謝

回答

0

你已經在stackoverflow搜索?

對於使用XPath的解決方案,請參閱:

Select Single Node with a attribute name in vbscript

+0

是的,我已經搜查了很多。事實是我的解決方案有效,但它不起作用,我不知道爲什麼。問題在於付款解決方案在xml響應中有錯誤。 – luiscabus

+1

並回答我的第二個問題,關於如何獲取屬性值,這裏是:xmlDoc.SelectSingleNode(「/ Resposta/Erro」)。Attributes.getNamedItem(「Codigo」)。文本 – luiscabus

+0

順便說一句,你能告訴我如何將我的問題標記爲已解決?謝謝! – luiscabus

相關問題