怎么将xml直接读入到recordset

如何将xml直接读入到recordset
用循环,将xml读入生成recordset,在性能上有所缺陷。
先考虑将xml直接读入recordset:
<portfolio>
    <stock>
        <symbol>MSFT</symbol>
        <price>$66.00</price>
        <companyname>Microsoft Corporation</companyname>
        <website>http://www.microsoft.com</website>
    </stock>
    <stock>
        <symbol>AAPL</symbol>
        <price>$110.00</price>
        <companyname>Apple Computer, Inc.</companyname>
        <website>http://www.apple.com</website>
    </stock>
    <stock>
        <symbol>DELL</symbol>
        <price>$50.00</price>
        <companyname>Dell Corporation</companyname>
        <website>http://www.dell.com</website>
    </stock>
    <stock>
        <symbol>INTC</symbol>
        <price>$136.00</price>
        <companyname>Intel Corporation</companyname>
        <website>http://www.intel.com</website>
    </stock>
</portfolio>



    Dim rstxml As New ADODB.Recordset
    rstxml.ActiveConnection = "Provider=MSDAOSP; Data Source=MSXML2.DSOControl.2.6;"
    rstxml.Open "xml路径"
    Sheet1.Range("A1").CopyFromRecordset rstxml


但是这段代码产生的结果,在结果集后 多出了一列(前面列字符串的连接),求解答。
另问:rstxml.Open "xml路径" xml路径这里 考虑性能的话 应该用什么呢?比如说较大文件?
好像有stream这个变量类型?求例子。
------解决方案--------------------
微软
http://support.microsoft.com/kb/263247
------解决方案--------------------

记得.net里面很简单的……
------解决方案--------------------
引用:
微软
http://support.microsoft.com/kb/263247


不知道有人尝试过这两个例子吗?
recordset为什么State值是0?
------解决方案--------------------
引用:
但是这段代码产生的结果,在结果集后 多出了一列(前面列字符串的连接)

暂时用这个方法,CopyFromRecordset的时候 去除最后一列。
Sheet1.Range("A1").CopyFromRecordset oRs, , oRs.Fields.Count - 1