我用VB,使用POST从一个网站获取一个XML,之后想对该xml的内容进行解析 用Responsetext可以正确显示收到xml文档的内容,但是作为TEXT解析时却不方便。 
所以想把接收到的内容直接当作一个XML文档进行解析,因为这样可以方便地搜索它的各个节点的属性和内容。 Dim XmlDoc As DOMDocument XmlHttp.Open "POST", strURL, False 
XmlHttp.send If XmlHttp.Status = 200 Then 
    'XmlDoc.loadXML (XmlHttp.responseXML) 
    set XmlDoc = XmlHttp.responseXML        
End If 好像responseXML返回的是一个DOMDocument对象,可试了这两种方法都不对, 
试着打印出的节点名都是收到的xml文档中没有的,如"#Document","xml" 我刚刚接触XML,还请各位大侠不吝赐教 
如何能把POST接收到内容,作为XML文档进行解析? VB , WinXP  ,  Microsoft XML5.0 

解决方案 »

  1.   

    http://topic.csdn.net/u/20090906/00/e06ec429-3a2e-4fe5-807f-286bd78fc79b.html?37006
      

  2.   

    XmlDoc.loadXML (XmlHttp.responseText)
      

  3.   

    稍稍改下你的,不过还是有多余的字符
        Dim x As New MSXML2.XMLHTTP
         x.open "get", strURL, False
         x.send    Debug.Print StrConv(x.responseBody, vbUnicode)
      

  4.   

    这样可以了Private Sub Command1_Click()
        Dim x As New MSXML2.XMLHTTP
         x.open "get", strURL, False
         x.send
         
         Dim xmlDoc As New DOMDocument
         xmlDoc.loadXML x.responseText
        
        Debug.Print xmlDoc.documentElement.Text
    End Sub
      

  5.   

    非常感谢!
    我试了还是不可以。
    Private Sub Command1_Click()
        Dim x As New MSXML2.XMLHTTP
         x.open "get", strURL, False
         x.send
         Dim xmlDoc As New DOMDocument
         xmlDoc.loadXML x.responseText
        Debug.Print xmlDoc.documentElement.Text
    End Sub
    ;debug输出的结果是空的改了下,尝试下面的
    Private Sub Command1_Click()
        Dim x As New MSXML2.XMLHTTP
        Dim XML_Node As IXMLDOMNode
         x.open "get", strURL, False
         x.send
         Dim xmlDoc As New DOMDocument
         xmlDoc.loadXML x.responseText
         Debug.Print xmlDoc.NodeName
         set XML_Node = xmlDoc.childNodes(1)
         Debug.Print XML_Node.NodeName
    End Sub
    ;如上程序,输出结果是:
    #document
    #comment
    仍然不正确下面是用responseText的时候,可以正确显示
    Private Sub Command1_Click()
        Dim x As New MSXML2.XMLHTTP
         x.open "get", strURL, False
         x.send
       If x.Status = 200 Then 
         Debug.Print x.responseText
       End If
    End Sub
    这时输出的就是正确的xml内容如下:
    <?xml version="1.0" encoding="UTF-8"?><OnlineData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  version="0.09.0005"><OnlineResult><Success /><Errors /></OnlineResult></OnlineData>怎样才能把这个结果作为XML文档进行解析呢?
      

  6.   

    你这样得到的结果里面还有很多无用的字符...
    Private Sub Command1_Click()
        Dim xmlDoc As New DOMDocument
        Dim xmlRootElement As IXMLDOMElement
        Dim xmlError As IXMLDOMParseError
        Dim Success As Boolean    xmlDoc.async = False
        xmlDoc.validateOnParse = True    Success = xmlDoc.Load(strURL)
        If Success = True Then
            Set xmlRootElement = xmlDoc.documentElement
            Debug.Print xmlRootElement.Text
        Else
            MsgBox "查询失败!"
        End If
        Set xmlRootElement = Nothing
        Set xmlError = xmlDoc.parseError
        Set xmlError = Nothing
    End Sub
    至于结果怎么解析,那是处理字符串的问题了。
      

  7.   

    谢谢king06的解答时间关系,放弃了xml解析;
    最后还是写了段字符串处理的程序,对text进行解析。