PB如何解析XML文件
一般都是直接通过数据窗口导出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'
xml解析目的
Xml的解析目的:读出xml的信息为我所用,yy地说可以拿来配置系统好处是:,拿来进行网络传输,数据交换等。没有用代码实现过职能yy了。
三种解析方式:
DOM解析:把整个xml文件读入内存,虽然占内存,但处理能进行随机访问,并且处理前后相关的元素时很方便。(哪位能举个实例告诉我什么是前后相关的元素?)
SAX解析: 以事件驱动,它为每个元素、标签、内容都定义一个回调方法,在读取时以流的形式读取xml,遇到元素、标签、内容就调用相应的方法。优点是处理高效,缺点是只能对xml进行读操作不能写,而且处理前后相关的元素不太方便。
JDOM解析: 和DOM解析非常类似,但效率要高些。
使用,如何解析xml文档并将数据写入sqlserver数据库中
首先要分类讨论1. 你是要做一个通用的导入导出,还是一个设计好格式的?
2. 你的数据量有多大3. 服务器端是否允许安装Office倒着来3. 装了 Office 就去看文档,没装就用 EPPlus 库然后看文档,应该都是 xslx了吧2. 数据量小的直接进,数据量大首先在服务器端把上传的 xlsx 拆分小一点文件,这样占用内存会小很多。1. 设计好格式,标头确定的,那就直接读,每行按单元格下标依次灌入对象,插入数据库通用的话,实际上需要用户首先下载一个模板,模板根据数据库字段生成,文件名就是数据表名加下载时间,导入时拆分文件名,获得表名,根据位置灌到数据库。
如果更高级点,你可以在模板中增加一个隐藏的 sheet,把相关字段信息及字典值都藏在里面,导入的时候根据隐藏 sheet 的内容进行检查清洗,然后再入数据库总结Excel 导入其实就是要去建立一个格式契约,简单的就是约定死;复杂的就是根据内容动态藏在 excel 文件中,导入时根据约定去解析处理文件。
还没有评论,来说两句吧...