以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何对XML文件解析  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=82995)

--  作者:huhu
--  发布时间:2016/3/29 15:03:00
--  [求助]如何对XML文件解析
查询得出的是XML,如何把XML转化为一个类似table的东西,容易看懂一点。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:findcprkd.rar



--  作者:大红袍
--  发布时间:2016/3/29 15:14:00
--  

比如

 

Dim xmlDoc As New System.XML.XmlDocument
xmlDoc.Load("d:\\findcprkd.xml")
Dim ndList  = xmlDoc.GetElementsByTagName("z:row")

For i As Integer = 0 To ndList.count - 1
    Dim id As String = ndList(i).GetAttribute("id")
    Dim cinvname As String = ndList(i).GetAttribute("cinvname")
    output.show(id & " " & cinvname)
Next


--  作者:huhu
--  发布时间:2016/3/29 15:34:00
--  
不能创建成一个表吗?创建成一个表我不就可以做任何的查询等等。
--  作者:huhu
--  发布时间:2016/3/29 16:09:00
--  
Dim xmlDoc As New System.XML.XmlDocument
xmlDoc.Load("H:\\webservice\\find\\findcprkd.xml")
Dim ndList As System.XML.XmlNodeList = xmlDoc.GetElementsByTagName("z:row")
For i As Integer = 0 To ndList.count - 1
    Dim nr As Row = Tables("成品入库").AddNew
    msgbox(0)
    nr("第一列") = ndList(i).item("xmlns:z").InnerText
    msgbox(1)
    nr("第二列") = ndList(i).item("autoid").InnerText
    nr("第三列") = ndList(i).item("id").InnerText
    nr("第四列") = ndList(i).item("cinvcode").InnerText
    nr("第五列") = ndList(i).item("cinvaddcode").InnerText
    nr("第六列") = ndList(i).item("cinvaddcode").InnerText
Next


图片点击可在新窗口打开查看此主题相关图片如下:error.png
图片点击可在新窗口打开查看


--  作者:大红袍
--  发布时间:2016/3/29 16:26:00
--  
 汗,看不懂你xml里面是什么,你参考代码改成你自己的要的东西啊。
--  作者:huhu
--  发布时间:2016/3/29 16:29:00
--  
 nr("第一列") = ndList(i).item("xmlns:z").InnerText
执行类似的语句报错了么。

--  作者:大红袍
--  发布时间:2016/3/29 16:43:00
--  
汗,连代码没没看。
 
Dim xmlDoc As New System.XML.XmlDocument
xmlDoc.Load("H:\\webservice\\find\\findcprkd.xml")
Dim ndList As System.XML.XmlNodeList = xmlDoc.GetElementsByTagName("z:row")
For i As Integer = 0 To ndList.count - 1
    Dim nr As Row = Tables("成品入库").AddNew
    msgbox(0)
    nr("第一列") = ndList(i).GetAttribute("id")
    msgbox(1)
    nr("第二列") =  ndList(i).GetAttribute("cinvname")
Next

--  作者:huhu
--  发布时间:2016/3/29 16:58:00
--  


图片点击可在新窗口打开查看此主题相关图片如下:error.png
图片点击可在新窗口打开查看


改为这样不会报错Dim ndList  = xmlDoc.GetElementsByTagName("z:row")
但是数据怎么就增加2行呢。

图片点击可在新窗口打开查看此主题相关图片如下:怎么是2行数据.png
图片点击可在新窗口打开查看


--  作者:大红袍
--  发布时间:2016/3/29 17:42:00
--  

如果一行,这样写

 

Dim xmlDoc As New System.XML.XmlDocument
xmlDoc.Load("d:\\findcprkd.xml")

Dim body = xmlDoc.SelectSingleNode("/ufinterface/voucher/body")
For Each r As object In body.ChildNodes
    If r.name = "z:row" Then
        Dim nr As Row = Tables("表A").AddNew
        nr("第一列") = r.GetAttribute("id")
        nr("第二列") = r.GetAttribute("cinvname")
    End If
Next