Foxtable(狐表)用户栏目专家坐堂 → xml文件提取问题


  共有3919人关注过本帖树形打印复制链接

主题:xml文件提取问题

帅哥哟,离线,有人找我吗?
rjh4078
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3360 积分:24780 威望:0 精华:0 注册:2012/3/26 21:47:00
xml文件提取问题  发帖心情 Post By:2022/3/10 22:18:00 [只看该作者]

请教各位,想提取这个XML文件的patch节点,使用如下代码,但是有节点报错,循环无法完成,xm文件无法上传修改了后缀名(xml>txt),请教一下这种层层嵌套的如何分解
Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "xml文件|*.xml" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim xml As String = FileSys.ReadAllText(dlg.FileName,Encoding.UTF8)
    Dim xo As Foxtable.XObject = Foxtable.XObject.Parse(xml)
    
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.txt

For Each bm As JToken In  xo("Separations")("Separation")
    Output.show(bm("#text"))
    For Each yg As JToken In bm("Patches")("Patch")
          Output.Show(yg("#text"))
    Next
Next

End If

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/10 22:45:00 [只看该作者]

有些Patch节点不是数组

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim xml As String = FileSys.ReadAllText(dlg.FileName,Encoding.UTF8)
    Dim xo As Foxtable.XObject = Foxtable.XObject.Parse(xml)
    
    For Each bm As JToken In  xo("Separations")("Separation")
        Output.show(bm("#text"))
        If Typeof bm("Patches")("Patch") Is jobject
            Output.Show(bm("Patches")("Patch")("#text"))
        Else
            For Each yg As JToken In bm("Patches")("Patch")
                Output.Show(yg("#text"))
            Next
        End If
    Next
    
End If

 回到顶部
帅哥哟,离线,有人找我吗?
rjh4078
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3360 积分:24780 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2022/3/11 9:07:00 [只看该作者]

多谢  多谢 

 回到顶部
帅哥哟,离线,有人找我吗?
rjh4078
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3360 积分:24780 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2022/3/11 9:32:00 [只看该作者]

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim xml As String = FileSys.ReadAllText(dlg.FileName,Encoding.UTF8)
    Dim xo As Foxtable.XObject = Foxtable.XObject.Parse(xml)
Output.Show(xo.ToString())
    For Each bm As JToken In  xo("Separations")("Separation")
        ''Output.show(bm("#text"))
        If Typeof bm("Patches")("Patch") Is jobject
           '' Output.Show(bm("Patches")("Patch")("#text"))
        Else
            For Each yg As JToken In bm("Patches")("Patch")
                Output.Show(yg("#text"))
                output.show( yg("Width ")("#text"))

            Next
        End If
    Next
    
End If

蓝版 我想再获取下一级 Width 要怎么获取? 使用yg("Width ")("#text") 提示不存在对象  ,再套循环又不对,麻烦指导一下

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/11 9:38:00 [只看该作者]

if yg("Width ") isnot nothing then
if yg("Width ")("#text") isnot nothing then
output.show( yg("Width ")("#text"))
end if
end if

 回到顶部
帅哥哟,离线,有人找我吗?
rjh4078
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3360 积分:24780 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2022/3/11 9:45:00 [只看该作者]

感谢 这次可以了

 回到顶部