Foxtable(狐表)用户栏目专家坐堂 → [求助]XML解析


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

主题:[求助]XML解析

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


加好友 发短信
等级:四尾狐 帖子:804 积分:6897 威望:0 精华:0 注册:2017/8/31 12:07:00
[求助]XML解析  发帖心情 Post By:2022/11/16 11:24:00 [只看该作者]

老师,麻烦问一下如何解析以下格式xml数据(计划提取fa piao代码等信息):
<?xml version="1.0" encoding="UTF-8"?>
-<ofd:OFD Version="1.1" DocType="OFD" xmlns:ofd="http://www.ofdspec.org/2016">
  -<ofd:DocBody>
      -<ofd:DocInfo>
           <ofd:DocID>b6ae35f487e448bba27cb391fc7b840d</ofd:DocID>
           <ofd:Author>China Tax</ofd:Author>
           <ofd:CreationDate>2022-11-07</ofd:CreationDate>
         -<ofd:CustomDatas>
                 <ofd:CustomData Name="template-version">1.0.20.0422</ofd:CustomData>
                 <ofd:CustomData Name="native-producer">SuwellFormSDK</ofd:CustomData>
                 <ofd:CustomData Name="producer-version">1.0.20.0603</ofd:CustomData>
                 <ofd:CustomData Name="fa piao代码">062001</ofd:CustomData>
                 <ofd:CustomData Name="fa piao号码">77610</ofd:CustomData>
                 <ofd:CustomData Name="合计税额">***</ofd:CustomData>
                 <ofd:CustomData Name="合计金额">362</ofd:CustomData>
                 <ofd:CustomData Name="开piao日期">2022年11月07日</ofd:CustomData>
                 <ofd:CustomData Name="校验码">17431 86442 88824 2</ofd:CustomData>
                 <ofd:CustomData Name="购买方纳税人识别号">91622922MA73</ofd:CustomData>
                 <ofd:CustomData Name="销售方纳税人识别号">93621202MA73</ofd:CustomData>
              </ofd:CustomDatas>
           </ofd:DocInfo>
         <ofd:DocRoot>Doc_0/Document.xml</ofd:DocRoot>
         <ofd:Signatures>Doc_0/Signs/Signatures.xml</ofd:Signatures>
     </ofd:DocBody>
</ofd:OFD>
帮助文件:http://www.foxtable.com/mobilehelp/topics/0171.htm
看了半天没有看懂,麻烦老师指导一下,谢谢!
[此贴子已经被作者于2022/11/16 11:25:07编辑过]

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


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

转换为json。然后按json的方式取值即可

Dim xml As String = "<xml><to>George</to><from>John</from><content>Don't forget the meeting!</content></xml>"
Dim xo As Foxtable.XObject = Foxtable.XObject.Parse(xml)
Output.Show(xo.ToString)

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


加好友 发短信
等级:四尾狐 帖子:804 积分:6897 威望:0 精华:0 注册:2017/8/31 12:07:00
  发帖心情 Post By:2022/11/16 12:47:00 [只看该作者]

‘蓝老师,运行不起来,麻烦再给修改一下,谢谢!
Dim fl As String = "E:\开发的程序\出纳日记账\Reports\2022111612372327553\OFD.XML"
Dim xml As String = FileSys.ReadAllText(FL)
Dim xo As Foxtable.XObject = Foxtable.XObject.Parse(xml)
Output.Show(xo.ToString)
Dim json As String = xo.ToString
Dim jo As JObject = JObject.Parse(json)
For Each jt As JToken In jo("ofd:CustomData")
    Output.Show(jt("@Name").ToString & "|" & jt("#text").ToString)
Next


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


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


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

Output.Show(xo.ToString)显示什么内容?

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


加好友 发短信
等级:四尾狐 帖子:804 积分:6897 威望:0 精华:0 注册:2017/8/31 12:07:00
  发帖心情 Post By:2022/11/16 13:35:00 [只看该作者]

{
  "@xmlns:ofd": "http://www.ofdspec.org/2016",
  "@DocType": "OFD",
  "@Version": "1.1",
  "ofd:DocBody": {
    "ofd:DocInfo": {
      "ofd:DocID": "b6ae35f487e448bba27cb391fc7b840d",
      "ofd:Author": "China Tax",
      "ofd:CreationDate": "2022-11-07",
      "ofd:CustomDatas": {
        "ofd:CustomData": [
          {
            "@Name": "template-version",
            "#text": "1.0.20.0422"
          },
          {
            "@Name": "native-producer",
            "#text": "SuwellFormSDK"
          },
          {
            "@Name": "producer-version",
            "#text": "1.0.20.0603"
          },
          {
            "@Name": "fa piao代码",
            "#text": "06200190"
          },
          {
            "@Name": "fa piao号码",
            "#text": "77610"
          },
          {
            "@Name": "合计税额",
            "#text": "***"
          },
          {
            "@Name": "合计金额",
            "#text": "3625.00"
          },
          {
            "@Name": "开piao日期",
            "#text": "2022年11月07日"
          },
          {
            "@Name": "校验码",
            "#text": "17431 86442 8882"
          },
          {
            "@Name": "购买方纳税人识别号",
            "#text": "916922MA73J85"
          },
          {
            "@Name": "销售方纳税人识别号",
            "#text": "9362134H0D7L"
          }
        ]
      }
    },
    "ofd:DocRoot": "Doc_0/Document.xml",
    "ofd:Signatures": "Doc_0/Signs/Signatures.xml"
  }
}


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


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

和普通的json解析没有区别啊,一层一层的取值:http://www.foxtable.com/mobilehelp/topics/0252.htm

Dim fl As String = "E:\开发的程序\出纳日记账\Reports\2022111612372327553\OFD.XML"
Dim xml As String = FileSys.ReadAllText(FL)
Dim xo As Foxtable.XObject = Foxtable.XObject.Parse(xml)
For Each jt As JToken In xo("ofd:DocBody")("ofd:DocInfo")("ofd:CustomDatas")("ofd:CustomData")
    Output.Show(jt("@Name").ToString & "|" & jt("#text").ToString)
Next

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


加好友 发短信
等级:四尾狐 帖子:804 积分:6897 威望:0 精华:0 注册:2017/8/31 12:07:00
  发帖心情 Post By:2022/11/16 14:45:00 [只看该作者]

感谢蓝版,明知道是嵌套格式,功力不够,看的眼花缭乱!

 回到顶部