wr431x 发表于 2013-10-17 14:16:23

读取xml中的数据

Func ReadXmlData($fileName)
        ;MsgBox("文件名","文件名",$fileName)
        If Not FileExists($fileName) Then
                MsgBox(4096,"提示","数据文件不存在或已被修改,请重新选择!")
                Return False
        Else
                Dim $objXML = ObjCreate("Microsoft.XMLDOM")
                Dim $isFind = $objXML.load($fileName)
      Dim $Root = $objXML.documentElement
               
                Dim $temp =        $Root.childNodes.item(0).selectSingleNode("Message_Data").text
                Dim $headNode = $Root.childNodes.item(1).childNodes.item(0).childNodes.item(0)
       
                ;get data form_head
                $PRE_ENTRY_ID = $headNode.selectSingleNode("PRE_ENTRY_ID").text
                $I_E_FLAG = $headNode.selectSingleNode("I_E_FLAG").text
                $I_E_PORT = $headNode.selectSingleNode("I_E_PORT").text
                $MANUAL_NO = $headNode.selectSingleNode("MANUAL_NO").text
                $CONTR_NO = $headNode.selectSingleNode("CONTR_NO").text
                $I_E_DATE = $headNode.selectSingleNode("I_E_DATE").text
                $D_DATE = $headNode.selectSingleNode("D_DATE").text
          $TRADE_NAME = $headNode.selectSingleNode("TRADE_NAME").text
                ;MsgBox("标志","标题",$TRADE_NAME)
                $TRADE_CO = $headNode.selectSingleNode("TRADE_CO").text
                $OWNER_CODE = $headNode.selectSingleNode("OWNER_CODE").text
                $OWNER_NAME = $headNode.selectSingleNode("OWNER_NAME").text
                $AGENT_CODE = $headNode.selectSingleNode("AGENT_CODE").text
                $AGENT_NAME = $headNode.selectSingleNode("AGENT_NAME").text
                $TRAF_MODE = $headNode.selectSingleNode("TRAF_MODE").text
                $TRAF_NAME = $headNode.selectSingleNode("TRAF_NAME").text
                $VOYAGE_NO = $headNode.selectSingleNode("VOYAGE_NO").text
                $BILL_NO = $headNode.selectSingleNode("BILL_NO").text
                $TRADE_MODE = $headNode.selectSingleNode("TRADE_MODE").text
                $CUT_MODE = $headNode.selectSingleNode("CUT_MODE").text

                $LICENSE_NO = $headNode.selectSingleNode("LICENSE_NO").text
                $TRADE_COUNTRY = $headNode.selectSingleNode("TRADE_COUNTRY").text
                $DISTINATE_PORT = $headNode.selectSingleNode("DISTINATE_PORT").text
                $DISTRICT_CODE = $headNode.selectSingleNode("DISTRICT_CODE").text
                $APPR_NO = $headNode.selectSingleNode("APPR_NO").text
                $TRANS_MODE = $headNode.selectSingleNode("TRANS_MODE").text
                $PACK_NO = $headNode.selectSingleNode("PACK_NO").text
                $WRAP_TYPE = $headNode.selectSingleNode("WRAP_TYPE").text
                $GROSS_WT = $headNode.selectSingleNode("GROSS_WT").text
                $NET_WT = $headNode.selectSingleNode("NET_WT").text
                $EX_SOURCE = $headNode.selectSingleNode("EX_SOURCE").text
                $NOTE_S= $headNode.selectSingleNode("NOTE_S").text
               
                ;get data form_list
                Dim $listNode = $Root.childNodes.item(1).childNodes.item(1)
                $listLength = $listNode.childNodes.length
                Dim $array1[$listLength]
                $listArray = $array1
                For $i = 0 To $listLength - 1
                        $listArray[$i] = $listNode.childNodes.item($i).selectSingleNode("CONTR_ITEM").text
                        $listArray[$i] = $listNode.childNodes.item($i).selectSingleNode("CODE_T").text
                        $listArray[$i] = $listNode.childNodes.item($i).selectSingleNode("CODE_S").text
                        $listArray[$i] = $listNode.childNodes.item($i).selectSingleNode("G_NAME").text
                        $listArray[$i] = $listNode.childNodes.item($i).selectSingleNode("G_MODEL").text
                        $listArray[$i] = $listNode.childNodes.item($i).selectSingleNode("G_QTY").text
                        $listArray[$i] = $listNode.childNodes.item($i).selectSingleNode("G_UNIT").text
                        $listArray[$i] = $listNode.childNodes.item($i).selectSingleNode("DECL_PRICE ").text
                        $listArray[$i] = $listNode.childNodes.item($i).selectSingleNode("TRADE_TOTAL").text
                        $listArray[$i] = $listNode.childNodes.item($i).selectSingleNode("TRADE_CURR").text
                        $listArray[$i] = $listNode.childNodes.item($i).selectSingleNode("QTY_CONV").text
                        $listArray[$i] = $listNode.childNodes.item($i).selectSingleNode("UNIT_1").text
                        $listArray[$i] = $listNode.childNodes.item($i).selectSingleNode("GOODS_ID").text
                        $listArray[$i] = $listNode.childNodes.item($i).selectSingleNode("PRDT_NO").text
                        $listArray[$i] = $listNode.childNodes.item($i).selectSingleNode("QTY_2").text
                        $listArray[$i] = $listNode.childNodes.item($i).selectSingleNode("UNIT_2").text
                        $listArray[$i] = $listNode.childNodes.item($i).selectSingleNode("ORIGIN_COUNTRY").text
                        $listArray[$i] = $listNode.childNodes.item($i).selectSingleNode("DUTY_MODE").text
                Next
               
                If        Not($Root.childNodes.item(1).childNodes.item(5).childNodes.length == 0) Then
                        ;get data cert_list
                        Dim $certNode = $Root.childNodes.item(1).childNodes.item(5)
                        $certLength = $certNode.childNodes.Length
                        Dim $array2[$certLength]
                        $certArray = $array2
               
                        For $i = 0 To $certLength - 1
                                $certArray[$i] = $certNode.childNodes.item($i).selectSingleNode("DOCU_CODE").text
                                $certArray[$i] = $certNode.childNodes.item($i).selectSingleNode("CERT_CODE").text
                        Next
                EndIf
               
                If        Not($Root.childNodes.item(1).childNodes.item(4).childNodes.length == 0) Then
                        ;get data containernumber
                        Dim $containerNode = $Root.childNodes.item(1).childNodes.item(4)
                        $containerLength = $containerNode .childNodes.Length
                        Dim $array3[$containerLength]
                        $containerArray = $array3
               
                        For $i = 0 To $containerLength - 1
                                $containerArray[$i] = $containerNode.childNodes.item($i).selectSingleNode("CONTAINER_NO").text
                                $containerArray[$i] = $containerNode.childNodes.item($i).selectSingleNode("CONTAINER_MODEL").text
                                $containerArray[$i] = $containerNode.childNodes.item($i).selectSingleNode("CONTAINER_WT").text
                        Next
                EndIf
               
                Return True
        EndIf
       
EndFunc

wilask 发表于 2013-10-17 14:19:28

AU3的语法也这么优美,谢谢分享

fanan_666 发表于 2014-1-3 14:23:00

谢谢分享!

zxhou1 发表于 2014-3-12 13:21:40

好东西,学习了

Yuan310 发表于 2018-1-10 09:38:18

谢谢分享,学习了
页: [1]
查看完整版本: 读取xml中的数据