Foxtable(狐表)用户栏目专家坐堂 → 请教用代码合并XML文件问题


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

主题:请教用代码合并XML文件问题

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


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

都说了要一层层的取啊


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


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


加好友 发短信
等级:二尾狐 帖子:534 积分:3886 威望:0 精华:0 注册:2018/1/3 16:03:00
  发帖心情 Post By:2024/3/11 17:14:00 [只看该作者]

蓝老师我用代码

Dim fl As String = "D:\项目测试\24132.XML"

Dim xml As String = FileSys.ReadAllText(FL)

Dim xo As Foxtable.XObject = Foxtable.XObject.Parse(xml)

Dim r As Row = Tables("Header").AddNew

r("EIid") = xo("EInvoice")("Header")("EIid")

提示错误

.NET Framework 版本:4.0.30319.36543

Foxtable 版本:2022.8.18.1

错误所在事件:窗口,XML导入窗口,Button1,Click

详细错误信息:

Object reference not set to an instance of an object.


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


加好友 发短信
等级:二尾狐 帖子:534 积分:3886 威望:0 精华:0 注册:2018/1/3 16:03:00
  发帖心情 Post By:2024/3/11 17:17:00 [只看该作者]

用如下代码可以成功导入数据

Dim fl As String = "D:\项目测试\24132.XML"

Dim xml As String = FileSys.ReadAllText(FL)

Dim xo As Foxtable.XObject = Foxtable.XObject.Parse(xml)

Dim r As Row = Tables("Header").AddNew

r("EIid") = xo("Header")("EIid") '数据要一层层的取

r("EInvoiceTag") = xo("Header")("EInvoiceTag")


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


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

是的,忽略了。xml读进来后第一层节点EInvoice是根节点,可以不要,从第二层节点开始取值即可

r("SellerIdNum") = xo("EInvoiceData")("SellerInformation")("SellerIdNum") 

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


加好友 发短信
等级:二尾狐 帖子:534 积分:3886 威望:0 精华:0 注册:2018/1/3 16:03:00
  发帖心情 Post By:2024/3/12 11:41:00 [只看该作者]

蓝老师您好!第三层IssuItemInformation有多个节点,用下面的代码无法循环导入

Dim fl As String = "D:\项目测试\24132.XML"

Dim xml As String = FileSys.ReadAllText(FL)

Dim xo As Foxtable.XObject = Foxtable.XObject.Parse(xml)

Dim r3 As Row = Tables("IssuItemInformation").AddNew

r3("ItemName") = xo("EInvoiceData")("IssuItemInformation")("ItemName")

r3("Quantity") = xo("EInvoiceData")("IssuItemInformation")("Quantity")

r3("UnPrice") = xo("EInvoiceData")("IssuItemInformation")("UnPrice")

r3("Amount") = xo("EInvoiceData")("IssuItemInformation")("Amount")


不知道怎样用循环语句,敬请蓝老师指导


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


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


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


加好友 发短信
等级:二尾狐 帖子:534 积分:3886 威望:0 精华:0 注册:2018/1/3 16:03:00
  发帖心情 Post By:2024/3/12 15:03:00 [只看该作者]

蓝老师我用下列代码提示错误,请指点

Dim fl As String = "D:\项目测试\24132.XML"

Dim xml As String = FileSys.ReadAllText(FL)

Dim xo As Foxtable.XObject = Foxtable.XObject.Parse(xml)

Dim bms As JArray = xo("EInvoiceData")("IssuItemInformation")

For i As Integer = 0 To bms.Count - 1

    Dim r3 As Row = Tables("IssuItemInformation").AddNew

    Dim ygs As JArray = bms(i)("ItemName")

    For n As Integer = 0 To ygs.Count - 1

        r3("ItemName") = xo(ygs(n))

    Next

Next

错误信息:

Unable to cast object of type 'Newtonsoft.Json.Linq.JValue' to type 'Newtonsoft.Json.Linq.JArray'

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


加好友 发短信
等级:超级版主 帖子:106132 积分:539771 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/3/12 15:06:00 [只看该作者]

Dim xo As Foxtable.XObject = Foxtable.XObject.Parse(xml)
output.show(xo.tostring) 到命令窗口输出看看json结构是怎么样的

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


加好友 发短信
等级:二尾狐 帖子:534 积分:3886 威望:0 精华:0 注册:2018/1/3 16:03:00
  发帖心情 Post By:2024/3/12 15:19:00 [只看该作者]

{
  "Header": {
    "EIid": "24132000000024297906",
    "EInvoiceTag": "SWEI1300",
    "Version": "0.31",
    "InherentLabel": {
      "InIssuType": {
        "LabelCode": "Y",
        "LabelName": "是否蓝字fa piao标志"
      },      
  "EInvoiceData": {
    "SellerInformation": {
      "SellerIdNum": "92130608MA08K6LB3J",
      "SellerName": "保定市国景办公家具销售部",
      "SellerAddr": "河北省保定市清苑区建设南路93号",
      "SellerTelNum": "15131278711",
      "SellerBankName": "清苑县农村信用联社股份有限公司",
      "SellerBankAccNum": "243030122000014842"
    },
    "BuyerInformation": {
      "BuyerIdNum": "91130605743445377K",
      "BuyerName": "河北集团有限公司",
      "BuyerTelNum": "0312-5800618",
      "BuyerAddr": "河北省保定市清苑区朝阳南大街398号",
      "BuyerBankName": "中国建设银行股份有限公司清苑支行",
      "BuyerBankAccNum": "1305016672080000"
    },
    "BasicInformation": {
      "TotalAmWithoutTax": "2524.75",
      "TotalTaxAm": "25.25",
      "TotalTax-includedAmount": "2550.00",
      "TotalTax-includedAmountInChinese": "贰仟伍佰伍拾圆整",
      "Drawer": "周树新",
      "RequestTime": "2024-03-05 17:41:21"
    },
    "IssuItemInformation": [
      {
        "ItemName": "*家具*会议桌",
        "Quantity": "1",
        "UnPrice": "1386.138613861386",
        "Amount": "1386.14",
        "TaxRate": "0.01",
        "ComTaxAm": "13.86",
        "TotaltaxIncludedAmount": "1400.00",
        "TaxClassificationCode": "1050201010000000000"
      },
      {
        "ItemName": "*家具*沙发",
        "Quantity": "1",
        "UnPrice": "792.0792079207921",
        "Amount": "792.08",
        "TaxRate": "0.01",
        "ComTaxAm": "7.92",
        "TotaltaxIncludedAmount": "800.00",
        "TaxClassificationCode": "1050201060000000000"
      },
      {
        "ItemName": "*家具*茶几",
        "Quantity": "1",
        "UnPrice": "346.5346534653465",
        "Amount": "346.53",
        "TaxRate": "0.01",
        "ComTaxAm": "3.47",
        "TotaltaxIncludedAmount": "350.00",
        "TaxClassificationCode": "1050201010000000000"
      }
    ],
    "SpecificInformation": null,
    "AdditionalInformation": null
  },
 

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


加好友 发短信
等级:超级版主 帖子:106132 积分:539771 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/3/12 15:31:00 [只看该作者]

For i As Integer = 0 To bms.Count - 1

    Dim r3 As Row = Tables("IssuItemInformation").AddNew

    r3("ItemName") = bms(i)("ItemName")

Next


 回到顶部
总数 22 上一页 1 2 3 下一页