<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"><xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:Locale="zh-CN"><xs:complexType><xs:choice maxOccurs="unbounded"><xs:element name="Table1"><xs:complexType><xs:sequence><xs:element name="F_RoomID" type="xs:string" minOccurs="0"/><xs:element name="F_Phone" type="xs:string" minOccurs="0"/><xs:element name="F_Status" type="xs:unsignedByte" minOccurs="0"/></xs:sequence></xs:complexType></xs:element><xs:element name="Table2"><xs:complexType><xs:sequence><xs:element name="F_RoomID" type="xs:string" minOccurs="0"/><xs:element name="F_Phone" type="xs:string" minOccurs="0"/><xs:element name="F_Status" type="xs:unsignedByte" minOccurs="0"/></xs:sequence></xs:complexType></xs:element></xs:choice></xs:complexType></xs:element></xs:schema>
上面这段xml是用vb读C#的dataset里的结果,表示的是这个dataset的结构,其中包括name为Table1,表的结构有三个字段(F_RoomID,F_Phone,F_Status),我怎么方便的读出这些数据呢?我使用过dom,但是不知道怎么准确而又方便的读出name和表结构了。请问高手怎么解决呢?

解决方案 »

  1.   

    象这样:
    Option ExplicitDim m_XMLDoc As MSXML.DOMDocument
    Dim m_XMLNode As MSXML.IXMLDOMNode
    Dim m_XMLNodeList As MSXML.IXMLDOMNodeListPrivate Sub Form_Load()    Dim lvwItem As ListItem
        Dim i As Integer
        
       On Error GoTo Form_Load_Error    Set m_XMLDoc = New MSXML.DOMDocument
        m_XMLDoc.Load "E:\config.xml"
        
        Set m_XMLNode = m_XMLDoc.documentElement
        
        If m_XMLNode.nodeName = "application" Then
            If m_XMLNode.childNodes.length > 0 Then
                For i = 0 To m_XMLNode.childNodes.length - 1
                    If m_XMLNode.childNodes(i).nodeType = NODE_ELEMENT And _
                        m_XMLNode.childNodes(i).nodeName = "Config" Then
                            Set m_XMLNodeList = m_XMLNode.childNodes(i).childNodes
                            FillNodeLvw m_XMLNodeList
                    End If
                Next
            End If
        End If   On Error GoTo 0
       Exit SubForm_Load_Error:
        MsgBox "Form_Load Error!"
    End SubPrivate Sub FillNodeLvw(ByVal Node As IXMLDOMNodeList)    Dim lvwItem As ListItem
        Dim i As Integer
        
        On Error GoTo FillNodeLvw_Error    For i = 0 To Node.length - 1
            If Node(i).nodeType = NODE_ELEMENT Then
                Set lvwItem = L.ListItems.Add(, "A_" & i, Node(i).Text)
                lvwItem.SubItems(1) = Node(i).Attributes.Item(0).Text
            End If
        Next   On Error GoTo 0
       Exit SubFillNodeLvw_Error:
        MsgBox "FillNodeLvw Error!"
    End Sub