<?xml version="1.0" encoding="gb2312"?>
<RecvMmsList count="2">
<RecvMms>
<PhoneNumber>15928198226</PhoneNumber>
<MMSTitle>收彩信</MMSTitle>
<MMSFileName>_____.txt|Nature.jpg|________.txt|___0010.jpg|RecvMMS.smil</MMSFileName>
<RecvMMSID>20080707110400-15928198226</RecvMMSID>
<RecvTime>2008-07-07 11:04:01</RecvTime>
</RecvMms>
<RecvMms>
<PhoneNumber>15902862281</PhoneNumber>
<MMSTitle></MMSTitle>
<MMSFileName>RecvMMS.smil|edison.jpg</MMSFileName>
<RecvMMSID>20080708074208-15902862281</RecvMMSID>
<RecvTime>2008-07-08 07:42:10</RecvTime>
</RecvMms>
</RecvMmsList>代码
  xmlDoc = New DOMDocument '创建xml文档对象
    xmlDoc.loadXML strXml
    Set nodeListMmsId = xmlDoc.selectNodes("RecvMMSID") '获取RecvMMSID节点列表
///////////////// nodeListMmsId.length这个长度老是为0,明明有2个节点,/////////////////////////////
    If nodeListMmsId.length = 0 Then
        MsgBox "没有新彩信"
        Exit Sub
    End If
    Set nodeListTime = xmlDoc.selectNodes("RecvTime") '获取RecvTime节点列表
    Set nodeListNumber = xmlDoc.selectNodes("PhoneNumber") '获取PhoneNumber节点列表
    Set nodeListTitle = xmlDoc.selectNodes("MMSTitle") '获取MMSTitle节点列表
    Set nodeListMmsFile = xmlDoc.selectNodes("MMSFileName") '获取MMSFileName节点列表
    For nItem = 0 To nodeListMmsId.length - 1 Step (1) '循环取各个节点列表的子节点
        Set nodeMmsId = nodeListMmsId.Item(nItem)
        Set nodeTime = nodeListTime.Item(nItem)
        Set nodeNumber = nodeListNumber.Item(nItem)
        Set nodeMmsTitle = nodeListTitle.Item(nItem)
        Set nodeMmsFile = nodeListMmsFile.Item(nItem)
        
        
        strMmsId = nodeMmsId.Text '取各个子节点的内容
        strTime = nodeTime.Text
        strNumber = nodeNumber.Text
        strMmsTitle = nodeMmsTitle.Text
        strMmsFile = nodeMmsFile.Text
这样做怎么简析不出来啊?nodeListMmsId.length这个长度为0 ,我简析其他文件用这种方法就是可以的

解决方案 »

  1.   

    会不会是这个xml的编码有问题?vb不能简析,这个在c++里面是可以简析的
      

  2.   

    我发现那个貌似是编码问题,汉字过来后变成的
    “???”可能是这个造成的,vb默认的是utf-8编码。怎样解决啊?
      

  3.   

    A.将 strXml 中的编码信息去掉
    B.用文件方式 xmlDoc.Load
      

  4.   

    这个问题解决了 strXml = StrConv(objSendMms.responseBody, vbUnicode)谢谢老鸟
      

  5.   

    原来如此。
    还以为你给的 xml 就是 strxml 的值。