Foxtable(狐表)用户栏目专家坐堂 → 请教XML语句生成方法


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

主题:请教XML语句生成方法

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


加好友 发短信
等级:一尾狐 帖子:433 积分:4351 威望:0 精华:0 注册:2017/3/20 21:08:00
请教XML语句生成方法  发帖心情 Post By:2020/4/24 15:04:00 [只看该作者]

正在学习以下练习。
本页地址:http://www.foxtable.com/mobilehelp/topics/0172.htm

但针对这类语句不明白应该如何组合FT代码来生成XML格式语句,请专家指点。
<request type="sync" key="e3839305c3fc25529335d489247d0f21">
<host prod="XThirdParty" ver="1.0" ip="127.0.0.1" id="" lang="zh_CN" timestamp="20170426161614037" acct="db_nsyt" />
<field name="SequenceNumber" type="numeric">1</field>
<field name="PO_DOC_NO" type="string">A350-202004150001</field>
</request>

拜求专家点拨几条具体语句,谢谢你!


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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/24 15:13:00 [只看该作者]

例如

Dim jo As New Foxtable.XObject
jo("request")= New JObject
jo("request")("@type")= "sync"
jo("request")("@key")= "e3839305c3fc25529335d489247d0f21"
jo("request")("host")= New JObject
jo("request")("host")("@prod")= "XThirdParty"
msgbox(jo.ToXML)

属性前面加@符号即可

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


加好友 发短信
等级:一尾狐 帖子:433 积分:4351 威望:0 精华:0 注册:2017/3/20 21:08:00
生成 XML 代码再求教  发帖心情 Post By:2020/4/24 16:22:00 [只看该作者]

Dim jo As New Foxtable.XObject
Dim s1 As String = "XThirdParty"
Dim PO_DOC As String = "A350-202004150001"
Dim ja As New JArray
jo("request")= New JObject
jo("request")("@type")= "sync"
jo("request")("@key")= "e3839305c3fc25529335d489247d0f21"
jo("request")("host")= New JObject
jo("request")("host")("@prod")= "XThirdParty"
jo("request")("host")("@ver")= "1.0"
jo("request")("host")("@id")= ""
jo("request")("host")("@lang")= "zh_CN"
jo("request")("host")("@timestamp")= "20170426161604037"
jo("request")("host")("@acct")= "db_nsyt"
jo("request")("service") = New JObject
jo("request")("service")("@prod")="E10"
jo("request")("service")("@name")="PURCHASE_ARRIVAL.ImportData"
jo("request")("service")("@ip")="192.168.1.2" 
jo("request")("service")("@id")="demo"
jo("request")("payload")= New Jobject
jo("request")("payload")("param")= New JObject
jo("request")("payload")("param")("@key")="std_data"
jo("request")("payload")("param")("@type")="xml"
jo("request")("payload")("param")("data_request")= New JObject
jo("request")("payload")("param")("data_request")("datainfo")= New JObject
jo("request")("payload")("param")("data_request")("datainfo")=ja
Dim so As New JObject
so("parameter")= New JObject
so("parameter")("@key")="productName"    ’这个结果参数没出现在 XML语句中
so("parameter")("@type")="string"              ’这个结果参数没出现在 XML语句中
so("parameter")= s1                                   '这人有值
ja.add(so)
Output.Show(jo.ToXML)

’---结果如下:
<xml><request type="sync" key="e3839305c3fc25529335d489247d0f21"><host prod="XThirdParty" ver="1.0" id="" lang="zh_CN" timestamp="20170426161604037" acct="db_nsyt" /><service prod="E10" name="PURCHASE_ARRIVAL.ImportData" ip="192.168.1.2" id="demo" /><payload><param key="std_data" type="xml"><data_request><datainfo><parameter>XThirdParty</parameter></datainfo></data_request></param></payload></request></xml>

请专家指点! 谢谢你!
[此贴子已经被作者于2020/4/24 16:57:22编辑过]

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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/24 17:13:00 [只看该作者]

Dim jo As New Foxtable.XObject
jo("request")= New JObject
jo("request")("@type")= "sync"
jo("request")("@key")= "e3839305c3fc25529335d489247d0f21"
jo("request")("field") = New JObject
jo("request")("field")("@name")= "PO_DOC_NO"
jo("request")("field")("#text") = cstr(dr("po_doc"))
msgbox(jo.ToXML)


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


加好友 发短信
等级:一尾狐 帖子:433 积分:4351 威望:0 精华:0 注册:2017/3/20 21:08:00
已经知道怎么在同层加多行了,谢谢专家!  发帖心情 Post By:2020/4/24 23:30:00 [只看该作者]


‘------希望在同层下面连续得到以下结果的 3行时,一值无法实现
<field name="PO_DOC_NO" type="string">A360</field>                                    '单据类型
<field name="SUPPLIER_CODE" type="string">SY101002</field>                         '供应商编号
<field name="DOC_DATE" type="date">20200410</field>                              '单据日期
‘------结果在同层下面只出现了第 3行
Dim jo As New Foxtable.XObject
jo("request")= New JObject
jo("request")("@type")= "sync"
jo("request")("@key")= "e3839305c3fc25529335d489247d0f21"
jo("request")("field") = New JObject  ’---这行内容没有了
jo("request")("field")("@name")= "PO_DOC_NO"
jo("request")("field")("#text") = cstr(dr("po_doc"))
jo("request")("field") = New JObject ’---这行内容没有了
jo("request")("field")("@name")= "SUPPLIER_CODE"
jo("request")("field")("#text") = cstr(dr("supplier_code"))
jo("request")("field") = New JObject                              ’---结果只有这行值出现,前面2行没有了
jo("request")("field")("@name")= "DOC_DATE"             
jo("request")("field")("#text") = cstr(dr("doc_date"))        
msgbox(jo.ToXML)

请专家再指点,感谢!

已经知道怎么在同层加多行了,谢谢专家!
[此贴子已经被作者于2020/4/25 17:34:47编辑过]

 回到顶部