PB语言 如何将一个XML文档读取出来,读出每一个字段并保存到SQL SERVER数据库中
发布网友
发布时间:2022-05-05 07:17
我来回答
共3个回答
热心网友
时间:2023-11-05 11:07
可以使用文件读取的方式,你先把C盘中的1.XML文件读入到一个字符型变量中,然后使用FIND的方式,查找XML文件的关键字定位,然后使用MID函数字符串截取的方式来截取XML文件中的值。
假设我的1.xml有如下内容
<pk_corp>0001</pk_corp>
//将文件读入ls_text
string ls_text
li_FileNum = FileOpen("C:\1.xml", StreamMode!)
FileRead(li_FileNum, ls_text)
FileClose(li_FileNum)
//利用POS截取
long ll_start_pos, ll_end_pos
ll_start_pos = Pos( ls_text, "<pk_corp>", 1 )
ll_end_pos = Pos( ls_text, “</pk_corp>", 1 )
-------得到内容
string ls_value
ls_value = mid(ls_text, ll_start_pos + 9, ll_end_pos - ll_start_pos - 9)
这样可以得到ls_value = '0001'
热心网友
时间:2023-11-05 11:07
可以使用文件读取的方式,你先把C盘中的1.XML文件读入到一个字符型变量中,然后使用FIND的方式,查找XML文件的关键字定位,然后使用MID函数字符串截取的方式来截取XML文件中的值。
假设我的1.xml有如下内容
<pk_corp>0001</pk_corp>
//将文件读入ls_text
string ls_text
li_FileNum = FileOpen("C:\1.xml", StreamMode!)
FileRead(li_FileNum, ls_text)
FileClose(li_FileNum)
//利用POS截取
long ll_start_pos, ll_end_pos
ll_start_pos = Pos( ls_text, "<pk_corp>", 1 )
ll_end_pos = Pos( ls_text, “</pk_corp>", 1 )
-------得到内容
string ls_value
ls_value = mid(ls_text, ll_start_pos + 9, ll_end_pos - ll_start_pos - 9)
这样可以得到ls_value = '0001'
热心网友
时间:2023-11-05 11:08
一般都是直接通过数据窗口导出xml。然后再倒入xml为PB导入导出数据的一大课题,
如果您感兴趣我可以给您提供完整代码和指导.每个xml中的模板格式都是不同的,如果是通过pb数据窗口导出的 是根据数据窗口设计画板(就是编剧数据窗口的画板中)最下方的导出模板设置的..如果不是也是有规律可循的. 你要根据其中的段落来进行导出 .
大致的顺序是 (获得文件路径和文件名)(打开文件,获得该文件句柄)GetFileOpenName() -(利用句柄打开文件所有数据)fileopen()- fileread() 然后再根据代码段标识符!用Mid截取你所需要的那一段数据.
具体事例代码如下:
假设1.xml文件有如下内容
<dj>750</dj>
//选择路径
string ls_filename//文件名
stringls_fullname//完整路径+文件名
long li_filenum
If GetFileOpenName ("请选择文件", ls_fullname, ls_Filename,"XML", "all Files (*.XML),*.XML",docname) < 1 THEN
RETURN
ELSE
ls_fullname = Trim(ls_fullname)
END IF
ls_filename = lower(ls_filename)//小写文件(一般存成的文件读取是.xml不是大写的.XML)
li_FileNum = FileOpen(ls_fullname,StreamMode!,Read!,LockWrite!)
FileRead(li_FileNum,ls_temp)
/利用POS截取
long ll_start, ll_end
ll_start = Pos( ls_text, "<dj>", 1 )
ll_end_ = Pos( ls_text, “</dj>", 1 )
//截取所获得内容
string ls_str
ls_str = mid(ls_temp,ll_start + 4,ll_end - 1)
//此时ls_str = '75'
热心网友
时间:2023-11-05 11:08
一般都是直接通过数据窗口导出xml。然后再倒入xml为PB导入导出数据的一大课题,
如果您感兴趣我可以给您提供完整代码和指导.每个xml中的模板格式都是不同的,如果是通过pb数据窗口导出的 是根据数据窗口设计画板(就是编剧数据窗口的画板中)最下方的导出模板设置的..如果不是也是有规律可循的. 你要根据其中的段落来进行导出 .
大致的顺序是 (获得文件路径和文件名)(打开文件,获得该文件句柄)GetFileOpenName() -(利用句柄打开文件所有数据)fileopen()- fileread() 然后再根据代码段标识符!用Mid截取你所需要的那一段数据.
具体事例代码如下:
假设1.xml文件有如下内容
<dj>750</dj>
//选择路径
string ls_filename//文件名
stringls_fullname//完整路径+文件名
long li_filenum
If GetFileOpenName ("请选择文件", ls_fullname, ls_Filename,"XML", "all Files (*.XML),*.XML",docname) < 1 THEN
RETURN
ELSE
ls_fullname = Trim(ls_fullname)
END IF
ls_filename = lower(ls_filename)//小写文件(一般存成的文件读取是.xml不是大写的.XML)
li_FileNum = FileOpen(ls_fullname,StreamMode!,Read!,LockWrite!)
FileRead(li_FileNum,ls_temp)
/利用POS截取
long ll_start, ll_end
ll_start = Pos( ls_text, "<dj>", 1 )
ll_end_ = Pos( ls_text, “</dj>", 1 )
//截取所获得内容
string ls_str
ls_str = mid(ls_temp,ll_start + 4,ll_end - 1)
//此时ls_str = '75'
热心网友
时间:2023-11-05 11:08
学习一下PBDOM吧
热心网友
时间:2023-11-05 11:08
学习一下PBDOM吧