none
請問在vb使用msxml如何取得節點的屬性的值 RRS feed

  • 問題

  • 各位前輩好:
    我有一份xml文件內容如下

     

    <?xml version="1.0"?>
    <company>
     <employee No="001">
      <delegate_no>111</delegate_no>
      <delegate_no>222</delegate_no>
      <delegate_no>333</delegate_no>
     </employee>
     <employee No="002">
      <delegate_no>444</delegate_no>
      <delegate_no>555</delegate_no>
      <delegate_no>666</delegate_no>
      <delegate_no>777</delegate_no>
     </employee>
    </company>

     

     

    請問我該如何取得 employee這個節點的屬性No的值呢?
    謝謝

     

    2008年2月19日 上午 07:52

解答

  • Code Snippet

    Dim doc As New XmlDocument

     

    doc.loadXML(...)

     

    // get the attribute of employee element.

    Dim nodes As XmlNodeList = doc.SelectNode("//company/employee");

     

    For Each node As XmlNode in nodes

     

          // output attribute value.

          Console.WriteLine(node.Attributes.GetNamedItem("No").Value;

     

    Next

     

     

     

    2008年2月19日 上午 08:09
    版主

所有回覆

  • Code Snippet

    Dim doc As New XmlDocument

     

    doc.loadXML(...)

     

    // get the attribute of employee element.

    Dim nodes As XmlNodeList = doc.SelectNode("//company/employee");

     

    For Each node As XmlNode in nodes

     

          // output attribute value.

          Console.WriteLine(node.Attributes.GetNamedItem("No").Value;

     

    Next

     

     

     

    2008年2月19日 上午 08:09
    版主
  • 謝謝小朱前輩的回答

     

    但我現在遇到了一個問題

     

        Dim xml_doc As New MSXML2.DOMDocument40
        Dim rootNode As IXMLDOMNode
        Dim subNode As IXMLDOMNode
        Dim blnLoadSuccess As Boolean
         
       
        blnLoadSuccess = xml_doc.Load(xmlFilePath)
     
        If blnLoadSuccess = True Then
       
            For Each rootNode In xml_doc.documentElement.childNodes
               
                If rootNode.Attributes.getNamedItem("No").Text = "001" Then
                    For Each subNode In rootNode.childNodes
                        ...........
       
                    Next
                End If
            Next
        End If

     

    這是我寫在VB6裡的程式碼

    很奇怪的是,"For Each rootNode In xml_doc.documentElement.childNodes" 這行,有時會執行成功沒有錯誤,有時卻會出現

    執行階段錯誤 '91':

    沒有設定物件變數或With區塊變數

     

    但是出現這個錯誤之後,這行之後的程式還是可以正常執行,一樣會得到我想要的結果。

     

    請問是我哪一部分的寫法有問題呢?

    謝謝

     

    2008年2月27日 上午 03:53